Ron*_*rby 14 asp.net jquery file-upload multifile-uploader
我知道如何使用ASP.net的FileUpload控件上传.
我想要做的是使用这个jQuery多文件上传插件上传多个文件.
以下是选择上传多个文件时的功能:
<input type="file class="multi MultiFile" id="MultiFile1_F3" name="file1[]" style="position: absolute; top: -3000px;">
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何从asp.net操纵这些文件.我尝试使用Request.Files作为以下链接指示: ASP.Net从jQuery中选择它们后上传多个文件
这不起作用.我认为这只适用于在编译时用runat ="server"标记的控件.
有谁知道如何做到这一点?也许是Request.Form中的东西......?
谢谢你的帮助!
要检查两件事:
此外,runat ="server"不应与Request.Files是否有效有关 - 这更像是浏览器实际发布文件的问题.
这个jQuery插件为每个生成的输入控件提供完全相同的name属性.
出于这个原因,文件没有发布.
我建立了自己的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.)在Web表单上引用多文件插件(在此处下载):
<script src="jquery.MultiFile.pack.js" type="text/javascript">
3.)在您的网络表单上添加class ="multi"的文件输入:
<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);
}
Run Code Online (Sandbox Code Playgroud)
这就是我必须要做的就是将多个文件附加到从aspx页面发送的电子邮件中.
如果要增加可上载文件的总大小,请将其添加到web.config文件中:
<system.web>
<httpRuntime executionTimeout="240" maxRequestLength="30720"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)
executionTimeout以秒为单位测量,maxRequestLength以千字节为单位.在此示例中,请求将在4分钟后超时,并允许30mb请求.
自从我在 .NET 中进行此类操作以来已经有一段时间了,但是一旦您开始动态克隆表单输入,我认为您必须转到 Request.Form 并手动查找提交的值。我编写了 jQuery 代码来克隆一些带有顺序标识符的(非文件)输入。只要您有唯一的标识符,您就可以运行一个循环来查看 Request.Form["MultiFile1_F" + counter] 是否存在并从那里开始。
归档时间: |
|
查看次数: |
37509 次 |
最近记录: |