Domanda

Ho un paio di soluzioni, ma nessuna funziona perfettamente.

piattaforma

  1. ASP.NET/VB.NET/.NET 2.0
  2. IIS6
  3. IE6 (principalmente), con alcuni IE7;Firefox non necessario, ma utile

Opzioni di terze parti consentite

  1. Veloce
  2. ActiveX (vorrei evitare)
  3. Java (vorrei evitare)

Tentativi attuali

Stile Gmail:Puoi utilizzare JavaScript per aggiungere nuovi elementi di caricamento (input type='file'), quindi caricarli tutti in una volta con un clic di un pulsante.Funziona, ma richiede comunque molti clic.(Sono stato in grado di utilizzare un controllo ActiveX invisibile per rilevare cose come la dimensione del file, il che sarebbe utile.)

Caricatore Flash:Ho scoperto un paio di controlli di caricamento Flash che utilizzano un file flash 1x1 per fungere da uploader, richiamabile da JavaScript.(Uno di questi controlli è FancyUpload, un altro lo è Caricatore di file multipli di Dojo, ancora un altro è uno accanto darick_c su CodeProject.) Questi mi hanno entusiasmato, ma mi sono subito imbattuto in due problemi:

  1. Flash 10 interromperà la funzionalità utilizzata per richiamare la finestra di dialogo per il caricamento di più file.La soluzione alternativa consiste nell'utilizzare una cornice flash trasparente o semplicemente utilizzare un pulsante flash per richiamare la finestra di dialogo.Non è un grosso problema.
  2. L'autenticazione Windows integrata utilizzata sulla nostra intranet non viene utilizzata quando il file Flash tenta di caricare i file, richiedendo all'utente le credenziali.La soluzione alternativa a questo problema è utilizzare sessioni senza cookie, il che sarebbe un incubo per il nostro progetto a causa di molti altri motivi.

Caricatore Java:Ho notato diversi uploader di file multipli basati su Java, ma la maggior parte sembra costare denaro.Se ne trovassi uno che funzionasse davvero bene, potrei organizzarne l'acquisto.Preferirei semplicemente di no.Inoltre non mi piace l'aspetto della maggior parte di loro.Mi è piaciuto FancyUpload perché interagiva con html/javascript in modo da poterlo facilmente definire e gestire come volevo.

Caricatore ActiveX:ho trovato una soluzione ActiveX anche.Sembra che ActiveX funzionerà.Vorrei semplicemente scrivere il mio invece di comprarlo.Questa sarà la mia ultima risorsa, credo.

Risoluzione

Mi piacerebbe poter usare qualcosa come FancyUpload.Se riuscissi in qualche modo a gestire la richiesta delle credenziali, sarebbe perfetto.Ma, dalle mie ricerche, sembra che l'unica vera soluzione alternativa siano le sessioni senza cookie, cosa che semplicemente non posso fare.

Quindi, la domanda è:Esiste un modo per risolvere i problemi presentati sopra OPPURE esiste una soluzione diversa che non ho elencato e che raggiunge lo stesso obiettivo?

È stato utile?

Soluzione 5

@davidinbcn.myopenid.co:Fondamentalmente è così che ho risolto questo problema.Ma, nel tentativo di fornire una risposta più dettagliata, pubblico qui la mia soluzione.

La soluzione!

Crea due applicazioni web, o siti web, o qualsiasi altra cosa.

Applicazione A è una semplice applicazione web.Lo scopo di questa applicazione è ricevere caricamenti di file e salvarli nella posizione corretta.Impostalo come accesso anonimo consentito.Quindi crea una singola pagina ASPX che accetta i file pubblicati e li salva in una determinata posizione.(Lo sto facendo su una Intranet.In questo modo i siti Internet potrebbero esporsi a problemi di sicurezza.Prendi ulteriori precauzioni in questo caso.) Il codice dietro questa pagina sarebbe simile a questo:

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

Applicazione B è il tuo sito principale che consentirà il caricamento di file.Configuralo come un'applicazione Web autenticata che non consente l'accesso anonimo.Quindi, posiziona il FancyUpload (o soluzione simile) in una pagina di questo sito.Configurarlo per pubblicare i file nella pagina ASPX di caricamento dell'applicazione A.

Altri suggerimenti

Non penso che ci sia qualche soluzione per l'autenticazione integrata di Windows.Quello che potresti fare è salvare i file in una cartella generica non protetta e, nel caso di swfupload, utilizzare un gestore per spostare il file quando è completamente caricato

Potresti provare SWFCarica inoltre, rientrerebbe nella "categoria" del tuo Flash Uploader.

La nostra azienda utilizza ajaxuploader.com che supporta questa funzionalità.

In Internet Explorer, FileReference.upload (caricamento flash) Volere inviare anche i cookie.

Questo comportamento si interrompe solo durante l'esecuzione in altri browser.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top