Práca so súbormi   zodpovězená otázka

ASP.NET WebForms

Tuto na vbnet.cz som bohužial nenašiel tutoriál o práci so súbormi pomocou ASP.NET + VB.NET. Učím sa ASP.NET a jeden z prvých projektov ma napadlo spraviť niečo ako WebDeleteOperatingSystem cez ktorý by sa dalo získať prístup na disk používatela ktorý prehliada web stránku. Do TextBox-u by napísal cestu k súboru a stlačil jedno z tlačidiel ktoré by vykonalo niaky príkaz.

Ako prvé skúšam zmazávanie súborou ale niako mi to vypisuje chybu :

Server Error in '/' Application.

Runtime Error

Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine. 

Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".


<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.


<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
    </system.web>
</configuration>

Tu je použitý zdrojový kód :

    Protected Sub btnOk_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim Dire() As DirectoryInfo
        Dim file() As FileInfo
        Dim i As Integer

        If txtPath.Text <> "" Then
            Dim dir As New DirectoryInfo(txtPath.Text)

            Dire = dir.GetDirectories()
            file = dir.GetFiles()
            If Dire.Length > 0 Then

                For i = 0 To Dire.Length - 1

                    Dire(i).Delete(True)
                Next
            End If
            If file.Length > 0 Then

                For i = 0 To file.Length - 1

                    file(i).Delete()
                Next
            End If

        End If
    End Sub

Moje nazdávanie je vtom že to asi bude naschvál aby nemohlo poškodiť pc prehliadanie webu ?? ale myslím že by niekto skúsený mohol vedieť ako to napísať aby to fungovalo.

Dakujem za odpovede.

PS: čo sa týka prístupu do registrou , tak tiež nefunguje :(

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Spusťe si web lokálně,at víte co Vám to vrací za chybu..pokud nemůžete lokálně,tak změňte nastavení CustomErrors na "Off"

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Lokálne ten kód funguje , ale na serveri nie :(

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já myslel,abyste si stránky pustil lokálně z toho serveru,at vídíte výpis ze stack trace

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Cože má ta aplikace dělat? Má to být webová stránka, která maže soubory z disku uživatele, který ji prohlíží? Pokud je to tak, pak nechápete, jak funguje HTTP a nepřečetl jste si pořádně o ASP.NET nic.

Kód, který napíšete ve VB.NET nebo v C# se spouští na serveru. Na lokálu to samozřejmě funguje, protože jste na stejném počítači, kde je i uživatel. Když aplikace běží na jiném počítači, než na kterém jste, kód se spustí tam a vy budete mazat soubory na tom serveru a ne u sebe na klientovi.

Na webhostingu nebo na serveru tohle prostě nejde a IISka vám za standardních okolností ani nepovolí mazání souborů z jiného adresáře, než vám běží aplikace.

Webová stránka vám jen tak nemůže něco smazat z počítače, asi by to přes nějaké šílené ActiveX šlo v javascriptu, ale rozhodně to nejde kódem na serveru.

Prosím vás, jak jen nejlépe to umím. Nejdříve si ASP.NET pořádně nastudujte. Nechápete ani naprosto základní principy, bez kterých se prostě nic dělat nedá.

Odkazuji vás na sérii článků na tomto serveru a dále na videotutoriály na webu mstv.cz.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Prečítal som si o ASP.NET asi 5 dielov na tomto webe , táto otázka bol len čisto ako pokus či sa niečo také dá. Takže sa môžem rozlúčiť zo všetkým ako spúštanie napríklad cmd z klientského pc pomocou kódu :

Dim startInfo As System.Diagnostics.ProcessStartInfo
        Dim pStart As New System.Diagnostics.Process

        startInfo = New System.Diagnostics.ProcessStartInfo("D:/Windows/System32/cmd.exe")

        pStart.StartInfo = startInfo
        pStart.Start()

a proste všetko čo zasahuje do klientského pc je nemožne ovládať cez web :/ . A to ActiveX a javascript je zbytocne skúšať lebo myslím že javasriptu rozumie poriadne iba IE a povolené spúštanie ma ledva v IE6 . Také IE7 sa možno niečo spýta ak je zle nastavené ale IE8 úplne blokuje javascript už pri vytváraní objektu nieto pri použití fso.

PS: čítal som na internete že niekomu sa podarilo zmazávať súbori pomocou ajax , je to možné ?? alebo je niaka možná cesta v akomkoľvek jazyku ktorý nieje prehliadačom predvolene blokovaný a dá sa cez to pristupovať na disk ?? Je mi jedno aký prístup , stačilo by priemiestnovanie súborou / zápis do súboru / zmazanie ... to je jedno aký len či existuje niaky prosím ?? :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nechci být prudérní,ale...

Měl byste se nejdřív seznámit s technologiemi o kterých mluvíte.trvdit,že Javascript umí jen IE a že je ve vyšších verzích IE zakázán je holý nesmysl!!!

Z Vašeho příspěvku mám pocit,že chcete používat technologii ASP.net na věc,pro kterou není určené (navíc se mi zdá i silně zbytečné vytvářet web UI pro práci se soubory,na to je přeci Průzkumník,Total Commander.apod.).

Jak bylo již několikrát zmíněno..pokud máte zájem o naučení se ASP.net , naučte se nejdříve pořádně základy HTML a CSS.Poté se můžete zaobírat ASP.net,popřípadě dalšímy rozšířenímy..např.AJAX,Silverlight,.. Učte se postupně a nevymýšlejte si hned aplikace určené pro zkušenější programátory.Stavět a učit se dá jen pokud máte a znáte základy :-))

nahlásit spamnahlásit spam 0 odpovědětodpovědět

dík za radu :) skusím si nájsť niaky ten čas aby som si prezrel poriadne HTML a súvisiace jazyki s ASP.NET :)

PS: je možné vytvoriť .dll knižnicu (web control library) a do nej vložiť napríklad form/user control , ktorý obsahuje designer ?? Doteraz pouzívam Web Custom Control a všetko robím v source , ale mám kopu projektov , ktore su naozaj graficky chvalitebné a robil som ich na 50% cez visual (aby som mohol doladovať rôzne odchylky v rozmeroch a umiestneniach komponent , všetko som videl v realnom case akoby to bolo spustené a podobne) a potreboval by som niečo také aj na web stránku. Je to možné ?

A ako je možné to že ked robim vo Web Developery cez Design alebo Source tak sa vždy vygeneruje design a pri Windows Form atd. sa nevygeneruje ?? dá sa to niako nastaviť prosím ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback