0

我正在创建一个 RESTful Web 服务,它允许最终用户上传带有相关元数据的文件(对于每个上传的文件)。我正在研究使用MultipartFormDataStreamProvider类。该类允许从它的 formdata 属性读取表单数据(在我的例子中是元数据)以及从它的 filedata 属性读取文件。为此,我指的是在 ASP.net 站点上发送 HTML 表单数据的示例。

询问:

如何将表单数据中发布的元数据与文件数据中上传的文件相关联?

例如,假设 formdata 中的元数据是[{"property1": value1, "property2": value2}, {"property1": value3, "property2":value4}]并且 POST 请求上传了 2 个文件。我如何知道 JSON 数据中的哪个项目(在 formdata 属性中可用)对应于哪个上传的文件(在 filedata 属性中可用)?这将与从客户端发布的顺序相同吗?

4

1 回答 1

0

我今天碰巧偶然发现了这个......(对于那些可能有同样困惑的人)

似乎 MultipartFormDataStreamProvider 是“处理 MIME Multipart HTML Form 数据,它是表单数据和文件内容的组合。” 因此,您有一个表单值列表以及许多文件。所有这些都是同一个发布请求的一部分。

但就像在网络上的许多例子中一样,一种方法是

// This illustrates how to get the file names.
foreach (MultipartFileData file in streamProvider.FileData)
{
    Trace.WriteLine(file.Headers.ContentDisposition.FileName);
    Trace.WriteLine("Server file path: " + file.LocalFileName);


// Show all the key-value pairs.
foreach (var key in streamProvider.FormData.AllKeys)
{
    foreach (var val in streamProvider.FormData.GetValues(key))
        {
            Trace.WriteLine(string.Format("{0}: {1}", key, val));
        }
}
于 2014-01-15T18:21:36.843 回答