我有一個控制查看頁面。當用戶選擇文件並點擊提交按鈕時,這會使ajax調用將文件上傳到服務器上。不幸的是我的服務器方法接受上傳的文件路徑(如C:/Videos/1.mp4
)。這在以下代碼中很適合string demoPath
,但我不確定如何在用戶選擇控件時獲得類似的路徑。由於安全原因,現代瀏覽器不允許公開路徑。如何實現這一目標?從窗體獲取FileStream發佈文件
[HttpPost]
public async Task<JsonResult> Upload(string lectureId, string filepath)
{
for (int i = 0; i < Request.Files.Count; i++)
{
//// This works great
//string demoPath = "C:/Users/abchi/Desktop/BigBuckBunny.mp4";
var file = Request.Files[i];
var fileName = Path.GetFileName(file.FileName);
//var path = Path.Combine(Server.MapPath("~/User/"), fileName);
//file.SaveAs(path);
//await RunUploader(demoPath);
await RunUploader(get_path_from_posted_file_or_request);
}
return Json(new { error = false, message = "Video uploaded." });
}
public async Task RunUploader(string filePath)
{
// :::::::
using (var fileStream = new FileStream(filePath, FileMode.Open))
{
// ::::
}
// ::::::
}
謝謝Bartosz。好點,我已經解決了這個問題。 –