【发布时间】:2016-01-18 22:54:25
【问题描述】:
我在查看页面上有一个控件。当用户选择文件并单击提交按钮时,这会调用 ajax 将文件上传到服务器上。不幸的是,我的服务器方法接受文件路径(如C:/Videos/1.mp4)上传。这在下面的代码中与string demoPath 一起工作很好,但我不确定当用户选择控制时如何获得类似的路径。由于安全原因,现代浏览器不允许暴露路径。如何做到这一点?
[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))
{
// ::::
}
// ::::::
}
【问题讨论】:
标签: asp.net asp.net-mvc file-upload