2009-05-24 16 views
2

Ich habe ein Formular, wo Benutzer füllt (JSP-Seite). Eine der Eingaben ist vom Typ "Datei". Es gibt eine Vorschau-Schaltfläche, die ein neues Fenster öffnet und Javascript verwendet, um das ausgefüllte Formular für die Anzeige zu gestalten. Die Eingabe "Datei" wird als Hyperlink angezeigt und wenn der Benutzer auf den Hyperlink klickt, soll er den Anhang öffnen. Wenn Sie also eine PDF-Datei anhängen, würde ich erwarten, dass wenn ich auf den Hyperlink klicke, der Foxit-Reader geöffnet wird. Wenn es sich um eine Textdatei handelt, wird Notepad geöffnet.Öffnen einer lokalen Datei in einer Webseite mit Datei: //

Ich versuchte mit file:// aber nichts scheint zu passieren. Es scheint ein Sicherheitsmerkmal in MSIE zu sein, wo file:// Protokoll gesperrt ist.

Wie gehen Sie bei der Implementierung dieser Funktion ohne (ActiveX, Ajax)?

Antwort

3

file:// verweist nur auf das lokale Dateisystem auf dem Computer des Benutzers und unterliegt häufig mehr gesperrten Sicherheitsmaßnahmen. Es kann einfach nicht darauf verlassen werden, dass der Browser sogar file:// Protokollzugriff erlaubt.

Die einzige Möglichkeit, sicher zu tun, was Sie wollen, ist das Formular vollständig mit der Datei zu übermitteln und eine serverseitige Sprache (PHP, ASP.NET, Rails, Django, wählen) zu verwenden, um eine Seite mit der 'schönes' Layout der Formulardaten sowie eine Vorschau des Dokuments. So machen es Foren, Sie drücken die "Vorschau" -Schaltfläche und Ihr Post wird an den Server gesendet, der Server gibt es für Ihre Genehmigung aus, Sie genehmigen es, und es wird in der Datenbank gespeichert und veröffentlicht. Wenn Sie es nicht genehmigen, wird es verworfen und kommt nie in die Datenbank.

Wenn Sie nicht möchten, dass der Benutzer die Seite verlässt, können Sie dies in Ihre Validierung übernehmen und ein AJAX-Postback durchführen. Es gibt Javascript-Bibliotheken speziell zum automatischen Serialisieren und Übertragen von Formularen und zum Zurückgeben der Ergebnisse. JQuery Forms ist ein gutes Beispiel dafür (Hinweis: erfordert JQuery).

+0

Ich denke, er meint, bevor der Benutzer die Datei hochlädt. Überprüfen Sie die richtige Datei. Also, wenn sie Enter sagen, dass sie "C: /MyTextdocument.txt" per se hochladen wollen, will Er "file: // c: /MyTextdocument.txt" öffnen, was ich erwarten würde zu arbeiten? Weil der Benutzer den lokalen Pfad zu der Datei angegeben hat. – Sphvn

Verwandte Themen