-1

我有以下 HTML 源代码:

 <form name="AddTrack" id="add_track_form" action="AddTrack.aspx" method="post" runat="server">


       <input type="file" name="file1"/><br />
            <input type="file" style="margin-right: 52px;" name="file2" /><br />
            <input type="file" style="margin-right: 52px;" name="file3" /><br />
            <input type="file" style="margin-right: 52px;" name="file4" /><br />
        <button type="submit" class="blue-button">הוסף מסלול</button>
    </form>

使用此 ASPX - C# 代码:

if (Request.ContentLength != 0)
{
    int Size = Request.Files[0].ContentLength / 1024;
    if (Size <= 512)
    {

        string LocalFile = Request.Files[0].FileName;
        int LastIndex = LocalFile.LastIndexOf(@"\") + 1;
        string File = LocalFile.Substring(LastIndex, LocalFile.Length - LastIndex);
        string Path = Server.MapPath(" ../images/tracks") + "..\\" + File;
        Request.Files[0].SaveAs(Path);
        Response.Write(@"The file was saved: " + Path);
    }
    else
    {
        Response.Write("The file is too big !");
    }
}
else
{
    Response.Write("Unknown Error !");
}

如果我上传一个文件,效果很好,但我上传的上传输入不止一个,它不起作用。

我的问题是为什么以及如何解决它?

4

2 回答 2

2

据我所知,您只需要添加enctype="multipart/form-data"到您的表单中:

 <form name="AddTrack" id="add_track_form" action="AddTrack.aspx" method="post" runat="server" enctype="multipart/form-data">

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2

内容类型“application/x-www-form-urlencoded”对于发送大量二进制数据或包含非 ASCII 字符的文本效率低下。内容类型“multipart/form-data”应用于提交包含文件、非 ASCII 数据和二进制数据的表单。

您没有使用asp:FileUpload自动添加该 enctype 的控件,因此您应该手动执行此操作。

for(int i = 0; i < Request.Files.Count; i++) {

    int Size = Request.Files[i].ContentLength / 1024;
    if (Size <= 512)
    {
       string LocalFile = Request.Files[i].FileName;
    //.....
}
于 2013-03-29T11:09:03.320 回答
0

我建议你使用它uploadify library,它是免费的

因为基本上传文件 asp.net 不提供多次下载的可能性

链接:http ://www.uploadify.com/download/

于 2013-03-29T10:57:12.833 回答