どのようにaxios
アップロードを処理するか分かりません。しかし、一般的にはファイルを持つFormDataを送る必要があります。このフォームデータを送信するためにjQueryのAJAXを使用している場合、あなたはfalse
にprocessData
とcontentType
フラグを設定することを確認する必要があり、このような何かはあなたがFileControllerのCreateアクションメソッドを持っていると仮定すると
$("#saveBtn").click(function(e) {
e.preventDefault();
var fdata = new FormData();
var fileInput = $('#logo')[0];
var file = fileInput.files[0];
fdata.append("logo", file);
$.ajax({
type: 'post',
url: "@Url.Action("Create", "File")",
data: fdata,
processData: false,
contentType: false
}).done(function(result) {
// do something with the result now
console.log(result);
});
});
を働くだろうこれはファイルを取得し、それをあなたのアプリのルートのいくつかのディレクトリに保存します。残念ながら、あなたの問題は、私はここにあなたの主な問題は、あなたの送信されたデータはfile
ビーイングになりkey: 'file'
が欠けていることであると信じて簡単に説明したが、他のすべては、あなたのクライアントとサービス上で適切に設定されていると仮定すると、
さ
public class FileController : Controller
{
private readonly IHostingEnvironment hostingEnvironment;
public FileController(IHostingEnvironment environment)
{
hostingEnvironment = environment;
}
[HttpPost]
public IActionResult SaveFile(IFormFile logo)
{
if (logo != null)
{
//simply saving to "uploads" directory
var uploads = Path.Combine(hostingEnvironment.WebRootPath, "uploads");
var filePath = Path.Combine(uploads, logo.FileName);
logo.CopyTo(new FileStream(filePath, FileMode.Create));
return Json(new { status = "success" });
}
return Json(new { status = "error" });
}
}
送信されたデータと、ファイルに含まれるものをサーバーに表示してください。また、 'AJAX'の投稿ではなく、' axios'はどうしますか? –
Axiosを使用してファイルをアップロードする方法については、[example](https://github.com/mzabriskie/axios/blob/master/examples/upload/index.html)を参照してください。最低でも、あなたは 'FormData'で作業する必要があります。 –
あなたはクライアント側で間違っています。ファイルをアップロードする方法については、このAxiosの例をご覧ください(https://github.com/mzabriskie/axios/blob/master/examples/upload/index.html)。 – poke