Я создал контроль загрузки файлов с ядром angular и asp.net, и мне нужно переименовать имя файла загрузки перед добавлением его в wwwroot, чтобы решить проблему, когда пользователь загружает другой файл с тем же именем, но я обнаружил, что FileName proberty только для чтения в angualr иЯдро asp.net также
угловой код
upload() {
let selectedFile = this.uploader.queue.find(s => s.id == id);
if (selectedFile) {
const formData = new FormData();
formData.append(selectedFile.file.name, selectedFile.file);
const uploadReq = this.uploadSrv.HTTPRequestServ(
"POST",
this.pathAPI + `api/Upload/upload`,
formData
);
this.mySubscription = this.http.request(uploadReq).subscribe(event => {
debugger;
});
}
}
код ядра asp.net
public ActionResult upload()
{
try
{
var file = Request.Form.Files[0];
string folderName = "Upload";
string webRootPath = _hostingEnvironment.WebRootPath;
string newPath = Path.Combine(webRootPath, folderName);
if (!Directory.Exists(newPath))
{
Directory.CreateDirectory(newPath);
}
if (file.Length > 0)
{
string fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
string fullPath = Path.Combine(newPath, fileName);
using (var stream = new FileStream(fullPath, FileMode.Create))
{
file.CopyTo(stream);
}
}
return Json("Upload Successful.");
}
catch (Exception ex)
{
return Json("Upload Failed: " + ex.Message);
}
}