我知道如何使用ASP.net的FileUpload控件上传.
我想要做的是使用这个jQuery多文件上传插件上传多个文件.
以下是选择上传多个文件时的功能:
但我无法弄清楚如何从asp.net操纵这些文件.我尝试使用Request.Files作为以下链接指示: ASP.Net从jQuery中选择它们后上传多个文件
这不起作用.我认为这只适用于在编译时用runat ="server"标记的控件.
有谁知道如何做到这一点?也许是Request.Form中的东西......?
谢谢你的帮助!
要检查两件事:
确保您的表单设置了enctype ="multipart/form-data"属性.这是启用上传所必需的.
确保所有文件输入都设置了id和name属性.出于某种原因,如果你没有设置两者,那么就会发生奇怪的事情.
此外,runat ="server"不应与Request.Files是否有效有关 - 这更像是浏览器实际发布文件的问题.
这个jQuery插件为每个生成的输入控件提供完全相同的name属性.
出于这个原因,文件没有发布.
我建立了自己的JavaScript解决方案.
我将在评论中发布代码链接.
我重新审视了这一点,发现我试图做的事情并不是很困难.我得到了jquery多文件上传插件,可以使用我的aspx表单.我不知道为什么我以前遇到这么多麻烦.
1.)在Web表单中包含jQuery库:
2.)在Web表单上引用多文件插件(在此处下载):
3.)在您的网络表单上添加class ="multi"的文件输入:
4.)在表单提交上执行一些代码或调用这样的方法:
void SendMail(string from, string to, string subject, string body, string smtpServer) { // create mail message MailMessage mail = new MailMessage(from, to, subject, body); // attach posted files for (int i = 0; i < Request.Files.Count; i++) { HttpPostedFile file = Request.Files[i]; mail.Attachments.Add(new Attachment(file.InputStream, file.FileName)); } //send email new SmtpClient(smtpServer).Send(mail); }
这就是我必须要做的就是将多个文件附加到从aspx页面发送的电子邮件中.
如果要增加可上载文件的总大小,请将其添加到web.config文件中:
executionTimeout以秒为单位测量,maxRequestLength以千字节为单位.在此示例中,请求将在4分钟后超时,并允许30mb请求.