Вы не можете по-настоящему отображать "время" загрузки до тех пор, пока пользователь не начнет.
Вы УЖЕ можете видеть размер файла в шапке экрана, так зачем это нужно?
у тебя есть:
итак, выше вы видите имя файла, вы видите размер файла.
Однако до тех пор, пока вы не нажмете кнопку загрузки и не начнете загружать файлы, вы еще не знаете время загрузки, не так ли?
Итак, когда вы нажмете "Загрузить файлы", каждый выбранный файл будет загружен, и на стороне сервера (код позади) у вас есть это:
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
Теперь, когда ВСЕ файлы загружены, на стороне сервера даже будет загружено все, и тогда вы сможете взять приведенный выше список/таблицу и отобразить загруженные файлы вместе с именем файла, размером и временем.
Но у вас действительно нет возможности отображать информацию о файле, например, во сколько до этого момента вы загрузили файл, а затем у вас есть время, верно?
Редактировать:
Возможно, вышеприведенная идея была не совсем ясна. Я предлагаю, чтобы у вас был загрузчик на странице.
Итак, допустим, мы опустим эту разметку:
<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>
И обратите внимание, как мы используем клиентскую сторону, все сделано щелчком мыши.
Итак, теперь у нас есть это:
Мы нажали загрузить, и теперь мы видим это:
Теперь мы должны (должны) скрыть кнопку "Готово" - у нас есть возможность загрузить, нажав на эту кнопку "Готово" для нас.
Так что эта кнопка теоретически должна стать такой, чтобы скрыть ее:
<asp:Button ID="cmdDone" runat="server" Text="Done"
style="display:none" ClientIDMode="Static"/>
И код для этой кнопки такой:
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