带有多个文件上传控件的asp.net多次上传
Posted
技术标签:
【中文标题】带有多个文件上传控件的asp.net多次上传【英文标题】:asp.net multiple uploads with multiple fileupload control 【发布时间】:2011-10-12 00:05:35 【问题描述】:我正在处理多个文件上传的小型项目。
一开始用户有一个文件上传控件和一个小图像,称为fileuploadadder。
每次用户点击 fileuploadadder 时,第一个 fileupload 控件的克隆会使用 jquery 添加到页面中> 。文件上传控件的 ids 是 uniqe。比如 file1 , file2, ...
现在,我希望当用户单击页面末尾的按钮时,asp.net 会上传所选文件。
tnx
【问题讨论】:
【参考方案1】:这是一个例子:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<script type="text/c#" runat="server">
protected void BtnUpload_Click(object sender, EventArgs e)
if (Request.Files != null)
foreach (string file in Request.Files)
var uploadedFile = Request.Files[file];
if (uploadedFile.ContentLength > 0)
var appData = Server.MapPath("~/app_data");
var fileName = Path.GetFileName(uploadedFile.FileName);
uploadedFile.SaveAs(Path.Combine(appData, fileName));
</script>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form id="Form1" runat="server" enctype="multipart/form-data">
<a href="#" id="add">Add file</a>
<div id="files"></div>
<asp:LinkButton ID="BtnUpload" runat="server" Text="Upload" OnClick="BtnUpload_Click" />
</form>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$('#add').click(function ()
$('#files').append($('<input/>',
type: 'file',
name: 'file' + new Date().getTime()
));
return false;
);
</script>
</body>
</html>
【讨论】:
App_data 文件夹不应用于上传此类文件,因为这是为数据库文件等数据保留的特殊文件夹。 @Muhammad Akhtar,这只是一个例子。使用App_Data
文件夹来存储上传的文件并没有什么不好,如 Phil Haack 所示:haacked.com/archive/2010/07/16/…。它不是专门为数据库保留的。
hmm,但我在 2 年前工作时使用此文件夹时遇到问题。我已经在 *** 上发布了这个问题。请检查此***.com/questions/1519790/…
@Muhammad Akhtar,您遇到的问题是您试图将此文件夹中的文件直接提供给客户端。这当然是不可能的,因为 ASP.NET 不提供此文件夹中的文件。我通常做的是使用 HTTP 处理程序来提供来自该文件夹的上传文件。这让我可以控制哪个用户访问哪个文件。
嗯,没错。感谢您的澄清。你能给我一个参考链接吗?只是我个人的理解?以上是关于带有多个文件上传控件的asp.net多次上传的主要内容,如果未能解决你的问题,请参考以下文章
从 jQuery 中选择多个文件后,ASP.Net 上传多个文件