MVC 4 プロジェクトとして CMS を構築していますが、機能の 1 つは写真をアップロードすることです。ユーザーがハード ドライブから写真を選択すると、コントローラーの UploadFile メソッドに対する ajax 要求がトリガーされます。これにより、写真がサーバー上の仮想フォルダーにコピーされます。問題は、ブラウザがファイルを保存してサーバーに送信する場所と、コントローラで何をすべきかをよく理解していないことです。
これはこれまでの私のコードです-
景色:
<input id="cng_pic_btn" type="file" name="file" accept="image/*" /></td>
サーバーへの呼び出しを行う JavaScript:
$('#cng_pic_btn').live('change', function () {
custom_url = "/SideBar/UploadFile";
return_msg = "file uploaded";
var file_path = $('#cng_pic_btn').attr("value");
alert(file_path);
sendInfo = {
upload_from: file_path
}
CreataAjaxRequest(custom_url, sendInfo, return_msg);
})
コントローラー方式:
[HttpPost]
public void UploadFile(string upload_from)
{
string path = @"D:\Temp\";
HttpPostedFileBase photo = Request.Files[upload_from];
photo.SaveAs(path + photo.FileName);
}
ajax リクエストを送信します。
function CreataAjaxRequest(custom_url, sendInfo, return_msg) {
$.ajax({ type: "POST", url: custom_url, data: sendInfo })
.success(function (html) {
$(".query-result").replaceWith(html);
})
}