这个问题在这里已有答案:
我在C#/ .NET遗留框架之上运行Angular JS应用程序。
我需要上传和保存文件以及一些POST数据变量,因此使用FormData
api。
let formData = new FormData();
formData.append('co-lo-import', file);
formData.append('data', someString);
然后我像这样做一个xhr请求:
$http.post("//some/dot-net/endpoint/Default.aspx",
formData,
{ headers: { "Content-Type" : "multipart/form-data" }
});
在.NET方面,我试图从Request
变量中获取这些值。
string someString = Request.Form['data'];
HttpFileCollection uploadedFiles = null;
if(Request.Files != null){
uploadedFiles = Request.Files;
}
但这些值总是空的。在Request.Form
从来没有任何东西
我试过Request.Form.Get("data")
也是空的。
我在请求有效负载中看到了文件和数据:
如何使用.NET在后端获取此数据?
如果数据在Request.Form
中不可用,则尝试从HTTP请求访问原始输入流中的字节:
using(var reader = new StreamReader(Request.InputStream))
{
content = reader.ReadToEnd();
}