文件上传问题

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);
                
            }

 

posted @ 2017-09-28 11:05  哈哈兮  阅读(271)  评论(0编辑  收藏  举报