ASP.NET多文件上传与多个文件上传控件

4
我正在处理一个涉及多文件上传的小项目。
在开始时,用户有一个文件上传控件和一个称为fileuploadadder的小图像。
每次用户单击fileuploadadder时,使用jquery添加第一个文件上传控件的克隆到页面上。文件上传控件的id是唯一的,例如file1,file2等。
现在,我希望当用户单击页面底部的按钮时,asp.net会上传所选的文件。
谢谢。
1个回答

4

以下是一个例子:

<%@ 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
@Muhammad Akhtar,这只是一个例子。使用App_Data文件夹存储上传的文件并不会有任何问题,正如Phil Haack所示:http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx。它并不仅限于数据库的使用。 - Darin Dimitrov
嗯,但我在2年前工作时使用这个文件夹时遇到了问题。我已经在StackOverflow上发布了这个问题。请查看此链接https://dev59.com/4nI_5IYBdhLWcg3wHfOr - Muhammad Akhtar
@Muhammad Akhtar,你遇到的问题是你试图直接向客户端提供来自该文件夹的文件。当然,这是不可能的,因为ASP.NET不会提供来自该文件夹的文件。我通常使用HTTP处理程序从该文件夹中提供上传的文件。这使我能够控制哪个用户访问哪个文件。 - Darin Dimitrov
嗯,好的。谢谢你的澄清。你能给我一个参考链接,只是为了我的个人理解吗? - Muhammad Akhtar
@Muhammad Akhtar,参考链接是关于什么的? - Darin Dimitrov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接