Frage

Ich habe ein paar Lösungen, aber keine davon funktioniert perfekt.

Plattform

  1. ASP.NET / VB.NET / .NET 2.0
  2. IIS 6
  3. IE6 (hauptsächlich), mit etwas IE7;Firefox nicht notwendig, aber nützlich

Zulässige Optionen von Drittanbietern

  1. Blitz
  2. ActiveX (möchte vermeiden)
  3. Java (möchte vermeiden)

Aktuelle Versuche

Gmail-Stil:Sie können Javascript verwenden, um neue Upload-Elemente hinzuzufügen (Eingabetyp = „Datei“) und sie dann alle auf einmal mit einem Klick auf eine Schaltfläche hochladen.Das funktioniert, erfordert aber dennoch viele Klicks.(Ich konnte ein unsichtbares ActiveX-Steuerelement verwenden, um Dinge wie die Dateigröße zu erkennen, was nützlich wäre.)

Flash-Uploader:Ich habe ein paar Flash-Upload-Steuerelemente entdeckt, die eine 1x1-Flash-Datei als Uploader verwenden und per Javascript aufgerufen werden können.(Eine solche Kontrolle ist FancyUpload, ein anderer ist Dojos Multiple-File-Uploader, noch ein anderer ist einer von darick_c bei CodeProject.) Diese haben mich begeistert, aber ich bin schnell auf zwei Probleme gestoßen:

  1. Flash 10 beeinträchtigt die Funktionalität, die zum Aufrufen des Dialogfelds zum Hochladen mehrerer Dateien verwendet wird.Die Problemumgehung besteht darin, einen transparenten Flash-Rahmen zu verwenden oder einfach eine Flash-Taste zum Aufrufen des Dialogfelds zu verwenden.Das ist keine große Sache.
  2. Die in unserem Intranet verwendete integrierte Windows-Authentifizierung wird nicht verwendet, wenn die Flash-Datei versucht, die Dateien hochzuladen, wodurch der Benutzer zur Eingabe von Anmeldeinformationen aufgefordert wird.Die Problemumgehung besteht darin, Sitzungen ohne Cookies zu verwenden, was aus mehreren anderen Gründen ein Albtraum für unser Projekt wäre.

Java-Uploader:Mir sind mehrere Java-basierte Programme zum Hochladen mehrerer Dateien aufgefallen, aber die meisten scheinen Geld zu kosten.Wenn ich eines finde, das wirklich gut funktioniert, könnte ich den Kauf veranlassen.Ich möchte einfach lieber nicht.Auch das Aussehen gefällt mir bei den meisten nicht.Ich mochte FancyUpload, weil es mit HTML/Javascript interagierte, sodass ich es ganz einfach nach meinen Wünschen gestalten und verwalten konnte.

ActiveX-Uploader:ich fand eine ActiveX-Lösung sowie.Es scheint, dass ActiveX funktionieren wird.Ich würde einfach mein eigenes schreiben, anstatt dieses zu kaufen.Ich denke, das wird mein letzter Ausweg sein.

Auflösung

Ich würde gerne so etwas wie FancyUpload verwenden können.Wenn ich irgendwie an der Eingabeaufforderung für Anmeldeinformationen vorbeikomme, wäre das perfekt.Meine Recherchen zeigen jedoch, dass der einzige wirkliche Workaround Sitzungen ohne Cookies sind, die ich einfach nicht durchführen kann.

Die Frage ist also:Gibt es eine Möglichkeit, die oben genannten Probleme zu lösen, ODER gibt es eine andere Lösung, die ich nicht aufgeführt habe und die dasselbe Ziel erreicht?

War es hilfreich?

Lösung 5

@davidinbcn.myopenid.co:Das ist im Grunde die Art und Weise, wie ich dieses Problem gelöst habe.Um jedoch eine detailliertere Antwort zu geben, veröffentliche ich meine Lösung hier.

Die Lösung!

Erstellen Sie zwei Webanwendungen oder Websites oder was auch immer.

Anwendung A ist eine einfache Webanwendung.Der Zweck dieser Anwendung besteht darin, Datei-Uploads zu empfangen und an der richtigen Stelle zu speichern.Richten Sie dies als anonymen Zugriff ein.Erstellen Sie dann eine einzelne ASPX-Seite, die veröffentlichte Dateien akzeptiert und an einem bestimmten Speicherort speichert.(Ich mache das in einem Intranet.Dadurch könnten Internetseiten Sicherheitsrisiken ausgesetzt sein.Treffen Sie in diesem Fall besondere Vorsichtsmaßnahmen.) Der Code dahinter für diese Seite würde in etwa so aussehen:

Dim uploads As HttpFileCollection = HttpContext.Current.Request.Files
If uploads.Count > 0 Then
    UploadFiles(uploads)
Else
    result = "error"
    err = "File Not Uploaded"
End If

Anwendung B ist Ihre primäre Website, die das Hochladen von Dateien ermöglicht.Richten Sie dies als authentifizierte Webanwendung ein, die keinen anonymen Zugriff zulässt.Platzieren Sie dann die FancyUpload (oder eine ähnliche Lösung) auf einer Seite dieser Website.Konfigurieren Sie es so, dass seine Dateien auf der ASPX-Upload-Seite von Anwendung A veröffentlicht werden.

Andere Tipps

Ich glaube nicht, dass es eine Lösung für die integrierte Windows-Authentifizierung gibt.Möglicherweise können Sie die Dateien in einem generischen ungeschützten Ordner speichern und im Fall von swfupload einen Handler verwenden, um die Datei zu verschieben, wenn sie vollständig hochgeladen ist

Du könntest es versuchen SWFUpload auch – es würde in die „Kategorie“ Ihres Flash-Uploaders passen.

Unser Unternehmen verwendet ajaxuploader.com, das diese Funktion unterstützt.

Im Internet Explorer FileReference.upload (Flash-Upload) Wille Schicken Sie auch Kekse mit.

Dieses Verhalten tritt nur bei der Ausführung in anderen Browsern auf.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top