我正在尝试使用jquery将一个输入文件和一些来自用户的额外输入发布到Web API。
在web API中我使用MultipartFormDataStreamProvider来读取数据,这里是代码: -
var provider = new MultipartFormDataStreamProvider(<some local path>);
await request.Content.ReadAsMultipartAsync(provider);
var formData = provider.FormData;
foreach (string key in formData.Keys)
{
}
foreach (var file in provider.FileData)
{
FileInfo fileInfo = new FileInfo(file.LocalFileName);
}
在FileData中我得到输入文件,但FormData没有键。
我在下面的文章中提到了实现这个
http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-2
我不确定这里有什么问题......如果有人能帮我解决这个问题吗?
答案 0 :(得分:0)
HTML中的每个表单输入控件(<input />, <select />, <textarea />
等)都有名称属性吗?没有名称的表单输入控件无法成功(即浏览器不会发布其值)。
答案 1 :(得分:0)
下面的代码对我有用 -
var provider = new MultipartMemoryStreamProvider();
await request.Content.ReadAsMultipartAsync(provider);
foreach (HttpContent ctnt in provider.Contents)
{
if (ctnt != null && ctnt.Headers.ContentDisposition != null)
{
if (ctnt.Headers.ContentDisposition.Name == "\"fileToUpload\"")
{
//code goes here
}
}
}