У меня есть элемент управления на странице просмотра. Когда пользователь выбирает файл и нажимает кнопку отправки, это делает вызов 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. Хорошая точка, как и я, я уже решил это. –