Carica automaticamente un file sul server all’interno di un pannello di aggiornamento nel sito Web asp.net

Ho un caricamento di file all’interno del pannello di aggiornamento e un pulsante di caricamento che carica il file sul server. È ansible caricare il file senza fare clic sul pulsante di caricamento? Voglio rimuovere il pulsante di caricamento e caricare il file non appena il file viene selezionato dalla macchina dell’utente . Oppure, avere un timer di 4 secondi, quindi chiamare upload_click per verificare se il fileupload ha o meno un file. Come posso farlo senza un pulsante all’interno del pannello di aggiornamento?

          protected void Upload_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { //create the path to save the file to string fileName = Path.Combine(Server.MapPath("~/Bulk Upload"), FileUpload1.FileName); //save the file to our local path FileUpload1.SaveAs(fileName); } } 

Sono sicuro che è ansible utilizzare qualsiasi evento nell’elemento HTML INPUT File per avviare un intero post, che è tutto ciò che serve per caricare automaticamente il file.

Google, almeno sull’interfaccia standard, utilizza una sorta di plugin Flash per realizzare ciò che desideri.

Potrebbero esserci altri plugin jQuery che forniscono questa funzionalità immediatamente. Questo , ad esempio, sembra farlo.

Dovresti imitare il clic con qualche codice lato client, come ad esempio l’ submit da Javascript – e questo non è supportato da almeno un browser notevole, credo, IE.

Altrimenti, è ansible utilizzare le chiamate jQuery ajax ai metodi Web statici che eseguono il caricamento al volo, dietro le quinte, quando il valore del controllo del caricamento del file è cambiato.

Puoi hide il pulsante Upload con display:none stile in linea e aggiungi il seguente codice al metodo Page_PreRender :

 FileUpload1.Attributes["onchange"] = ClientScript.GetPostBackClientHyperlink(Upload, ""); 

Oppure prendere in considerazione l’utilizzo del controllo AsyncFileUpload da AjaxControlToolkit