提交ASP.NET Web表单时,AJAX AjaxFileUpload控件获取上载文件的列表

时间:2016-06-06 15:59:37

标签: asp.net ajaxcontroltoolkit

我有一个ASP.NET Web表单来获取名称,电子邮件地址和上传的文件名。添加了一个AjaxFileupload控件(ASP.NET AJAX Toolkit v16.1,不要与AsyncFileupload或ASP.NET FileUpload控件混淆),它运行正常,因为它可以让你上传文件而不进行任何回发,避免多次提交相同的表单(参见这里示例:Upload files and images without page PostBack / Refresh / Reload in ASP.Net - )

控件工作正常,它会保存文件,但问题是:一旦表单中的字段被验证,文件就会上传,我终于准备好提交表单我不能获取上传文件的路径,因为AjaxFileUpload控件没有任何方法可以执行此操作:(

换句话说,您不能简单地调用AjaxFileUpload.GetListOfUploadedFiles()并获取上传文件的ArrayList。我想保存记录,姓名,电子邮件以及该用户上传的所有文件名的所有字段,以便我可以使用此数据进行报告。

Protected Sub OnUploadComplete(sender As Object, e As AjaxFileUploadEventArgs)
   Dim fileName As String = Path.GetFileName(e.FileName)
   Me.AjaxFileUpload1.SaveAs(Server.MapPath("/output/" & fileName))
End Sub

我试图抓住那里的文件名,但是一旦一个文件被保存,你离开了Sub,数据就消失了,所以这是我的问题:

如何获取包含AjaxFileUpload控件的“上传文件”部分中列出的所有文件的String,这样当我提交表单时,我可以获得所有这些文件名?

我已经看到了与使用Javascrit更改排队文件行为相关的内容:AjaxFileUpload automatically upload file once selected也许有类似“Sys.Extended.UI.AjaxFileUpload.prototype._QueuedFiles”的内容我可以用来获取提交表格时的文件名列表。

谢谢!

PS:在数据库中保存二进制文件是不可能的,因为这意味着数据库大小会增加,因为每个用户每个上传文件大约6Mb,从而增加了数据库大小。

0 个答案:

没有答案