HTML
<form id="ajaxForm" action="/uploadHandler.ashx" method="post">
<label for="Name">File name</label><input type="text" id="Name" />
<label for="someData">Email</label><input type="text" id="Email" />
<label for="file">Image</label><input name="uploadFile" id="fileName" />
</form>
AJAX: json-data と upload-file を渡す ajax POST 呼び出しからデータを受け取る汎用ハンドラーがあります。お気に入り:
// type: 'POST',
// url: '/myHandler.ashx',
// data: '{"key":"val"}'
HANDLER: ジェネリック ハンドラーで、ポスト json データを取得し、アップロードされたファイルをストリーミングします。これは私が通常 POST json-data を取得する方法です:
var jsSerializer = new JavaScriptSerializer();
var jsonString = String.Empty;
context.Request.InputStream.Position = 0;
using (var inputStream = new StreamReader(context.Request.InputStream))
{
jsonString = inputStream.ReadToEnd();
}
var uploader = jsSerializer.Deserialize<Uploader>(jsonString);
// the Uploader class looks like this
public class Uploader{
public string Name { get; set; }
public string Email { get; set; }
}
ここでの問題は、context.Request.InputStream
アップロードされたファイルも含まれているため、jsSerializer.Deserialize
メソッドが失敗することです
POST にファイル strem も含まれている場合、json データを extcat する最良の方法は何ですか?
そして、標準であることに加えて、POST メソッドを使用している理由は、アップロードされたファイルを を使用してストリーミングしているからですSystem.Web.HttpFileCollection
が、それは正常に機能しています。