asp.net和input type = file从后面的代码中读取多个数据

时间:2017-01-27 22:38:11

标签: c# asp.net file-upload multiple-file-upload httppostedfile

我有一个

<input type="file" id="files" name="files[]" multiple runat="server" />

我没有使用asp:FileUpload,因为我需要使用jQuery插件进行多个图像预览,并在上传之前删除图像。

我的问题是如何管理来自代码的输入数据? 我必须遍历选定的图像。我在网上搜索过,但我找不到任何有趣的东西......

如果我尝试,从代码后面以这种方式阅读:

 HttpPostedFile file = Request.Files["files[]"];

我看到Request.Files.Count始终为0.

提前致谢!

1 个答案:

答案 0 :(得分:0)

要诚实,快速搜索给了我这个:

在你的aspx中:

<form id="form1" runat="server" enctype="multipart/form-data">
 <input type="file" id="myFile" name="myFile" />
 <asp:Button runat="server" ID="btnUpload" OnClick="btnUploadClick" Text="Upload" />
</form>

在代码背后:

protected void btnUploadClick(object sender, EventArgs e)
{
    HttpPostedFile file = Request.Files["myFile"];

    //check file was submitted
    if (file != null && file.ContentLength > 0)
    {
        string fname = Path.GetFileName(file.FileName);
        file.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", fname)));
    }
}

<强>更新

另一个快速搜索给了我这个,如果你有多个文件,那么获得它们的解决方案将是:

for (int i = 0; i < Request.Files.Count; i++)
{
    HttpPostedFileBase file = Request.Files[i];
    if(file .ContentLength >0){
    //saving code here

 }