Frage an jquery, asp.net-mvc, javascript, asp.net-mvc-3, html – Datei ohne openFile-Dialog vom Client auf den Server hochladen

0

Ich versuche, eine Aspx-Seite zu erstellen, auf der ich eine Datei direkt vom Client auf den Server hochladen kann, ohne dass der Benutzer eingreifen muss. Ich möchte etwas tun, wenn der Benutzer den Dateipfad in der URL angibt, diese bestimmte Datei muss auf den Server hochgeladen werden.

Beispiel: ht.tp://XXX.XXX.XXX.XXX/File_upload/File_Uploader.aspx?upload=C:/sample.csv&type=csv

Der Benutzer kann den Wert nach dem Hochladen ändern und jede von ihm angegebene Datei muss auf den Server hochgeladen werden, der sich unter xxx.xxx.xxx.xxx befindet

Dies ist nur eine Testversion, um zu überprüfen, ob die CSV-Datei auf dem Server erstellt wird oder nicht.

Ich möchte nur die Datei auf der Client-Seite auf die Server-Seite kopieren und es muss nur von der ASPX-Seite in dem oben angegebenen Format sein. Wenn es einen anderen guten Weg gibt, dann leite mich bitte. Vielen Dank.

Normalerweise reicht es aus, die gleiche Antwort nur einmal zu posten (stackoverflow.com/questions/10545227/…) :) Adriano Repetti

Deine Antwort

2   die antwort
3

Es istnicht möglich, eine Datei ohne Benutzerinteraktion hochzuladen. Er muss eine explizite Aktion ausführen: Ziehen und Ablegen oder Auswählen einer Datei mit einem Dialogfenster.

Das ist weilsicherheits GründeStellen Sie sich vor, eine HTML-Seite könnte eine beliebige Datei auf einen Remote-Server hochladen, ohne dass der Benutzer die gewünschte auswählen muss: Sie könnte Benutzerdokumente, Einstellungen, Kennwörter oder alles hochladen, auf das der Windows-Benutzer zugreifen kann, der den Browser ausführt. Aus dem gleichen Grund auch dievalue Attribut wird oft ignoriert und nicht jeder Browser behandelt dieaccept Attribut auch (Sie können einen Benutzer mehr oder weniger zwingen, die gewünschte Datei auszuwählen, bevor er fortfahren kann). Soweit ich mich erinnere, haben ältere Versionen von Firefox nicht einmal das programmgesteuerte Klicken auf einen erlaubtinput Tag zum Hochladen von Dateien.

@subirkumarsao: wenn du meinst, wie habe ich die kühne Aktion gesehen, ich habe die Antwort gelesen, dann gab es mir eine Warnung, dass der Beitrag geändert wurde, ich neu geladen habe und BANG! du bist mutig Juan Cortés
Gesehen, was Sie dort getan haben (fettgedruckt "nicht"): D Juan Cortés
@thisMayhem Ich dachte, Sie stimmen dem Beitrag nicht zu und es gibt einen möglichen Weg, dies zu tun. Es ist in Ordnung. Ich verstehe es jetzt. Subir Kumar Sao
@thisMayhem Ich bin neugierig. Gibt es eine Möglichkeit, dies zu tun? Subir Kumar Sao
0

Sie sollten den Inhalt der Datei veröffentlichen.

Das macht der Browser, wenn er den Datei-Upload-Dialog benutzt. Der Browser öffnet die Datei und sendet den Inhalt über HTTP.

Zum Beispiel können Sie den Inhalt mit postenwget --post-file=file.txt. Auf dem Server können Sie dann die POST-Daten lesen, um den Inhalt der Datei abzurufen.

Danke für die Antwort, ich möchte dasselbe wie du gesagt hast. es wird sehr hilfreich sein, wenn Sie mir Beispielcode zur Verfügung stellen können. Grundsätzlich ist meine Anforderung anders. Ich werde den Dateipfad aus der CSV-Datei lesen und auf der Basis von "Dateipfad" auf den Server hochladen. manjinder singh
Ja Adriano, ich brauche Code in HTML-Seite. manjinder singh
Ja, aber er kann den Inhalt einer beliebigen Datei (von einer HTML-Seite) nicht lesen. Ich meine: Er könnte (natürlich) das von einem Shell-Skript, einer Anwendung oder was auch immer machen, aber es kann nicht von einer HTML-Seite selbst gemacht werden. Adriano Repetti

Verwandte Fragen