C# 用文件上传数据

C# 用文件上传数据,c#,jquery,asp.net-mvc,file,plupload,C#,Jquery,Asp.net Mvc,File,Plupload,我必须将文件连同一些关于这些文件的描述一起发送到服务器。 根据上面的图片,我想上传一个文件,并在右边的文本框中提供文件的描述。单击“选择文件”链接后,用户可以选择另一个要上载的文件,该文件还将显示“说明”文本框。单击“上载文件”后,需要将文件的说明与文件一起上载到服务器。 我正在使用plupload来做这件事。但它只是上传文件,而不是描述。 另外,我正在使用MVC。因此,请建议任何解决方案,或建议任何其他javascript库,可以满足我的要求 下面是MVC代码 publ

我必须将文件连同一些关于这些文件的描述一起发送到服务器。

根据上面的图片,我想上传一个文件,并在右边的文本框中提供文件的描述。单击“选择文件”链接后,用户可以选择另一个要上载的文件,该文件还将显示“说明”文本框。单击“上载文件”后,需要将文件的说明与文件一起上载到服务器。 我正在使用plupload来做这件事。但它只是上传文件,而不是描述。 另外,我正在使用MVC。因此,请建议任何解决方案,或建议任何其他javascript库,可以满足我的要求

下面是MVC代码

           public string Upload(List<HttpPostedFileBase> fileUploads,List<string> fileDescription) 
    {
        int count = 0;
        foreach (HttpPostedFileBase file in fileUploads)
        {
            byte[] fileData = new byte[file.ContentLength];
            file.InputStream.Read(fileData, 0, file.ContentLength);
            db.UploadedFiles.AddObject(new UploadedFile
            {
                FileDescription = fileDescription[count],
                FileBinary = fileData,
                FileName = file.FileName
            });
            count++;
        }
        db.SaveChanges();
        return "Success";
    }

您可以修改用于上载的路由,并使用类似

...
        [Route("upload/{description}")]
        public HttpResponseMessage Upload(string description)
...
或者,您可以将描述放入cookie(但我建议使用第一种方法,它更干净)

然后

Request.Cookies["description"]
更新

现在我看到您需要上传多个文件,因此您可以使用相同的方法修改路由

[Route("upload")]
public string Upload(List<HttpPostedFileBase> fileUploads, [FromUri] string[] fileDescription)
[路由(“上传”)]
公共字符串上载(列表文件上载,[FromUri]字符串[]文件描述)

创建视图模型并用作动作方法中的参数

视图模型:

public class UploadViewModel
{
    public List<string> FileDescriptions;
    public List<HttpPostedFileBase> Files;
}

这将正确绑定数据

你能分享一下你为此做了什么吗<代码>C#&MVC代码这可能会有所帮助,但我用我的方法将所有内容都设置为空,文件上传和文件描述?您询问了如何提供描述,但并不意味着您没有找到加载任何内容的方法,请更新您的问题
[Route("upload")]
public string Upload(List<HttpPostedFileBase> fileUploads, [FromUri] string[] fileDescription)
public class UploadViewModel
{
    public List<string> FileDescriptions;
    public List<HttpPostedFileBase> Files;
}
public string Upload(UploadViewModel model) 
{
    // ....
}