Non si può davvero mostrare il "tempo" di caricare fino a quando l'utente inizia.
È GIÀ possibile vedere la dimensione del file sul vostro schermo, cap, quindi, perché è necessario che?
si dispone di:
quindi, in precedenza, vedere il nome del file, viene visualizzata la dimensione del file.
Tuttavia, fino a quando non si preme su di carico e di start up-il caricamento dei file, non so ancora l'up-tempo di caricamento di come ancora, non è vero?
Così, quando si colpisce up-load file, quindi ogni file selezionati saranno caricate, e nel lato server (codice dietro), si trova questo:
Protected Sub AjaxFileUpload1_UploadComplete(sender As Object, e As AjaxControlToolkit.AjaxFileUploadEventArgs) Handles AjaxFileUpload1.UploadComplete
Dim strFileSave As String
strFileSave = Server.MapPath("~/Content/" & e.FileName)
AjaxFileUpload1.SaveAs(strFileSave)
' now code to add say to a database table of files up-loaded.
Using conn As New SqlConnection(My.Settings.TEST4)
Dim strSQL = "INSERT IGNORE INTO MyUpoadFiles (FileName, UpLoadTime, Size, User_id) " &
"VALUES (@File, @Time,@Size, @User)"
Using cmdSQL As New SqlCommand(strSQL, conn)
conn.Open()
With cmdSQL.Parameters
.Add("@File", SqlDbType.NVarChar).Value = e.FileName
.Add("@Time", SqlDbType.DateTime).Value = Date.Now
.Add("@Size", SqlDbType.Int).Value = e.FileSize
.Add("@User", SqlDbType.Int).Value = Membership.GetUser.ProviderUserKey
End With
cmdSQL.ExecuteNonQuery()
End Using
End Using
End Sub
Ora, quando TUTTI i file vengono caricati, quindi lato server anche UpLoadComplete tutti il fuoco, e POI si può prendere il suddetto elenco/tabella e visualizzare i file caricati insieme al nome del file, la dimensione e il tempo.
Ma, in realtà, non hanno la capacità di visualizzare i file e le informazioni quali il tempo fino al momento che hai caricato il file e poi hanno il tempo, giusto?
Edit:
Forse l'idea non era del tutto chiaro. Quello che sto suggerendo è che hai l'up-loader nella pagina.
Così, dire che siamo noi a cadere in questo tipo di markup:
<div style="width:40%;padding:25px">
<ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload1" runat="server"
OnClientUploadCompleteAll="MyCompleteAll" ChunkSize="16384" />
<asp:Button ID="cmdDone" runat="server" Text="Done" CssClass="btn" ClientIDMode="Static"/>
<script>
function MyCompleteAll() {
$('#cmdDone').click()
}
</script>
<asp:GridView ID="Gfiles" runat="server" CssClass="table"></asp:GridView>
</div>
E si noti l'uso del lato client tutto fatto clic.
Così, ora abbiamo questo:
Ci ha colpito la carica, e ora vediamo questo:
Ora si deve (devono) nascondere il pulsante Fatto - abbiamo il caricamento, cliccando sul pulsante fatto per noi.
In modo che il pulsante in teoria dovrebbe diventare questo per nasconderlo:
<asp:Button ID="cmdDone" runat="server" Text="Done"
style="display:none" ClientIDMode="Static"/>
E il codice per il pulsante è questo:
Protected Sub cmdDone_Click(sender As Object, e As EventArgs) Handles cmdDone.Click
Dim rstFiles As New DataTable
Using conn As New SqlConnection(My.Settings.TEST4)
Dim strSQL As String = "select FileName, UpLoadTime, Size, User_id from MyUpLoadFiles"
Using cmdSQL As New SqlCommand(strSQL, conn)
conn.Open()
rstFiles.Load(cmdSQL.ExecuteReader)
End Using
End Using
Gfiles.DataSource = rstFiles
Gfiles.DataBind()
' hide up-loader
AjaxFileUpload1.Visible = False
End Sub