我有一个控制查看页面。当用户选择文件并点击提交按钮时,这会使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。好点,我已经解决了这个问题。 –