如何在 Ajax 文件上传控制 Asp.net(VB) 中更改文件信息?
How can I change File Info in Ajax File Upload Control ,Asp.net(VB)?
我正在使用 Asp.net(VB) 中的 Ajax 文件上传控件创建拖动文件上传。
我想在拖入面板时显示文件名、上传日期时间、文件大小。
我该怎么做该设置?
我可以像
这样更改 droparea 的文本
$(document).ready(function () {
Sys.Extended.UI.Resources.AjaxFileUpload_Pending = "保留中";
Sys.Extended.UI.Resources.AjaxFileUpload_Remove = "削除";
Sys.Extended.UI.Resources.AjaxFileUpload_Uploaded = "アップロード済";
Sys.Extended.UI.Resources.AjaxFileUpload_Uploading = "アップロード中";
Sys.Extended.UI.Resources.AjaxFileUpload_UploadedPercentage = "アップロード中 {0} %";
Sys.Extended.UI.Resources.AjaxFileUpload_Upload = "アップロード";
document.getElementsByClassName
$(".ajax__fileupload_dropzone").text("ここにファイルをドロップ");
document.getElementsByClassName
$(".ajax__fileupload_uploadbutton").text("アップロード");
});
但是我不知道如何更改文件信息显示。
这是我的拖动形式,我想从 application/pdf
更改为 uploaded datetime
在用户启动之前,您无法真正显示上传的“时间”。
您已经可以在屏幕截图中看到文件大小,为什么还需要那个?
你有:
所以在上面,你看到了文件名,你看到了文件大小。
但是,在您点击上传并开始上传文件之前,您还不知道上传时间,对吗?
所以,当你点击上传文件时,每个选择的文件都会被上传,在服务器端(代码后面),你有这个:
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 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
现在,当所有文件都上传后,服务器端甚至 UpLoadComplete 都会触发,然后你可以使用上面的 list/table 并显示上传的文件以及文件名、大小, 和时间。
但是,你真的没有能力显示文件信息,比如什么时候上传文件然后才有时间,对吧?
编辑:
可能上面的思路不是很清楚。我的建议是您在页面上有上传程序。
所以,假设我们加入这个标记:
<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
我正在使用 Asp.net(VB) 中的 Ajax 文件上传控件创建拖动文件上传。 我想在拖入面板时显示文件名、上传日期时间、文件大小。 我该怎么做该设置? 我可以像
这样更改 droparea 的文本$(document).ready(function () {
Sys.Extended.UI.Resources.AjaxFileUpload_Pending = "保留中";
Sys.Extended.UI.Resources.AjaxFileUpload_Remove = "削除";
Sys.Extended.UI.Resources.AjaxFileUpload_Uploaded = "アップロード済";
Sys.Extended.UI.Resources.AjaxFileUpload_Uploading = "アップロード中";
Sys.Extended.UI.Resources.AjaxFileUpload_UploadedPercentage = "アップロード中 {0} %";
Sys.Extended.UI.Resources.AjaxFileUpload_Upload = "アップロード";
document.getElementsByClassName
$(".ajax__fileupload_dropzone").text("ここにファイルをドロップ");
document.getElementsByClassName
$(".ajax__fileupload_uploadbutton").text("アップロード");
});
但是我不知道如何更改文件信息显示。
这是我的拖动形式,我想从 application/pdf
更改为 uploaded datetime
在用户启动之前,您无法真正显示上传的“时间”。
您已经可以在屏幕截图中看到文件大小,为什么还需要那个?
你有:
所以在上面,你看到了文件名,你看到了文件大小。
但是,在您点击上传并开始上传文件之前,您还不知道上传时间,对吗?
所以,当你点击上传文件时,每个选择的文件都会被上传,在服务器端(代码后面),你有这个:
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 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
现在,当所有文件都上传后,服务器端甚至 UpLoadComplete 都会触发,然后你可以使用上面的 list/table 并显示上传的文件以及文件名、大小, 和时间。
但是,你真的没有能力显示文件信息,比如什么时候上传文件然后才有时间,对吧?
编辑:
可能上面的思路不是很清楚。我的建议是您在页面上有上传程序。
所以,假设我们加入这个标记:
<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