文件上传问题
1. 文件上传的路径问题
获得服务器的根目录,通过IHostingEnvironment hostingEnv中的hostingEnv.WebRootPath
自建的目录格式为attachmentFileDirectory="/UploadFiles/
文件名称为attachmentURL="file.jpeg"
不论是在Windows还是在Linux中,用Path.Combine进行组合
string fileUrl = Path.Combine(this.hostingEnv.WebRootPath + attachmentFileDirectory + attachmentURL);
2. 保存上传文件问题
private bool CreateOrRenameIfExsis(string fileDirectory, string fileName, IFormFile file, out string finalFileName) { bool result = false; try { //若目录不存在,创建新的目录 if (Directory.Exists(fileDirectory) == false) { Directory.CreateDirectory(fileDirectory); } string tempFileName = fileName.Split('.')[0]; string tempFileType = fileName.Split('.')[1]; var fileUrl = Path.Combine(fileDirectory, fileName); //如果文件存在,重命名文件名 int i = 1; while (System.IO.File.Exists(fileUrl)) { fileName = tempFileName + "(" + i.ToString() + ")" + "." + tempFileType; fileUrl = Path.Combine(fileDirectory, fileName); i++; //System.IO.File.Delete(fileUrl); } using (FileStream fs = System.IO.File.Create(fileUrl)) { file.CopyTo(fs); fs.Flush(); } result = true; } catch (Exception) { throw; } finalFileName = fileName; return result; }
3. 删除上传文件问题
if (System.IO.File.Exists(fileUrl)) { System.IO.File.Delete(fileUrl); }