这个元素,
<asp:FileUpload ID="FileUploadEventosCasal" runat="server" />
可以按时间上传一个文件(按钮点击)。
我想知道如何通过点击一下按钮上传多个文件(排队)。 我不能使用.net 4.5。我喜欢这样的例子:http://www.aspdotnet-suresh.com/2012/12/aspnet-upload-multiple-files-using.html为了使它有效,我做了这些改变:
<script src="js/jquery-1.8.2.js"></script>
<script>$(function () {/* jquery.MultiFile.js code pasted here */});</script>
<asp:FileUpload ID="FileUploadEventosCasal" CssClass:"multi" runat="server" />
但这种变化只是为了运行。当我尝试上传时,它不起作用。这是按钮事件:
protected void ButtonInsMultipleUpload_Click(object sender, EventArgs e)
{
HttpFileCollection fileCollection = Request.Files;
List<byte[]> imgs = new List<byte[]>();
for (int i = 0; i < fileCollection.Count; i++)
{
HttpPostedFile uploadfile = fileCollection[i];
imgs.Add(new byte[uploadfile.InputStream.Length]);
uploadfile.InputStream.Read(imgs[i], 0, imgs[i].Length);
}
}
答案 0 :(得分:1)
脱离我的头顶?我会研究plupload之类的东西。
你可以选择多个文件,它支持分块......是的,你可能需要做更多的事情而不是删除页面上的控件,但你有更多的控制和更光滑的体验。
检查examples。
答案 1 :(得分:1)
在ASP.NET 4.5中,FileUpload控件支持上传多个文件:
<asp:FileUpload ID="FileUpload1" runat="server" AllowMultiple="true" />
答案 2 :(得分:1)
我发现了我的错误。在按钮单击方法中,我对此进行了更改:
HttpFileCollection fileCollection = Request.Files;
List<byte[]> imgs = new List<byte[]>();
for (int i = 0; i < fileCollection.Count; i++)
{
HttpPostedFile uploadfile = fileCollection[i];
byte[] imageBytes = new byte[uploadfile.InputStream.Length];
uploadfile.InputStream.Read(imageBytes, 0, imageBytes.Length);
if(imageBytes.Length > 0)
imgs.Add(imageBytes);
}
感谢您的帮助!!