这个 jQuery 插件为每个生成的输入控件提供了完全相同的名称属性。
出于这个原因,这些文件没有发布。
我构建了自己的 javascript 解决方案。
我将在评论中发布代码的链接。
编辑
我重新审视了这一点,发现我想做的事情一点也不难。我得到了 jquery 多文件上传插件,可以在我的 aspx 表单中正常工作。我不知道为什么我以前遇到这么多麻烦。
1.) 在 Web 表单中包含 jQuery 库:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript" />
2.) 参考网络表单上的多文件插件(在此处下载):
<script src="jquery.MultiFile.pack.js" type="text/javascript">
3.) 使用 class="multi" 在您的 Web 表单上添加文件输入:
<input type="file" 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 文件中:
<system.web>
<httpRuntime executionTimeout="240" maxRequestLength="30720"/>
</system.web>
executionTimeout 以秒为单位,maxRequestLength 以千字节为单位。在此示例中,请求将在 4 分钟后超时,并允许 30mb 请求。