Kullanıcı başlayana kadar yükün "zamanını" gerçekten görüntüleyemezsiniz.
Ekran kapağınızdaki dosya boyutunu zaten görebiliyorsunuz, peki neden buna ihtiyaç duyuyorsunuz?
sahipsin:
yani yukarıda, dosya adını görüyorsunuz, dosya boyutunu görüyorsunuz.
Ancak, dosyaları yükleme ve yüklemeye başlayana kadar, henüz yükleme süresini henüz bilmiyorsunuz, değil mi?
Yani, dosyaları yukarı yükle düğmesine bastığınızda, seçilen her dosya yukarı yüklenir ve sunucu tarafında (arkasındaki kod) buna sahip olursunuz:
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
Şimdi, TÜM dosyalar yüklendiğinde, sunucu tarafı bile UpLoadComplete all tetiklenir ve daha sonra yukarıdaki listeyi/tabloyu alabilir ve yüklenen dosyaları dosya adı, boyut ve zamanla birlikte görüntüleyebilirsiniz.
Ancak, dosyayı yükleyene kadar saat kaçta olduğu gibi dosya bilgilerini görüntüleme yeteneğine sahip değilsiniz ve sonra zamanınız var, değil mi?
Düzenlemek:
Belki de yukarıdaki fikir o kadar açık değildi. Benim önerim Bu sayfa üzerinde loader var, şu var.
Yani, bu işaretlemeyi bıraktığımızı varsayalım:
<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>
Ve istemci tarafını nasıl kullandığımızı not edin.
Yani, şimdi buna sahibiz:
Yükle düğmesine bastık ve şimdi bunu görüyoruz:
Şimdi Bitti düğmesini gizlemeliyiz (yapmamız gerekiyor) - bizim için bitti düğmesine tıklayan yükleme var.
Yani teoride bu düğme onu gizlemek için bu hale gelmelidir:
<asp:Button ID="cmdDone" runat="server" Text="Done"
style="display:none" ClientIDMode="Static"/>
Ve bu düğmenin kodu şudur:
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