/// <summary> /// 上传文件 /// </summary> /// <param name="file">FileUpload</param> /// <param name="filePath">要保存的文件路径,</param> /// <param name="lstFileType">允许上传的文件类型,大小,单位为KB,Size=0表示无任何限制</param> /// <param name="fileName">自定义文件名称</param> public stuUpLoadFile Upload(HttpPostedFile file, string filePath, string fileName, List <stuUpLoadFileType> lstFileType = null) { var uploadFile = new stuUpLoadFile { ErrorMessage = string.Empty }; filePath = Url.ConvertPath(filePath); if (!filePath.EndsWith("/")) { filePath += "/"; } //判断根目录,保存目录是否为空 if (string.IsNullOrWhiteSpace(filePath)) { uploadFile.ErrorMessage = "保存路径没有填写,请联系管理员!"; return(uploadFile); } // 检测上传文件的合法性 if (!CheckFile(file, ref uploadFile, lstFileType)) { return(uploadFile); } #region 文件操作 try { #region 创建文件目录(任何级别目录) var fileMapPath = Webs.GetMapPath(filePath); //获取目录绝对路径 Directory.CreateDirectory(fileMapPath); #endregion file.SaveAs(fileMapPath + fileName); uploadFile.FileName = fileName; uploadFile.FileNamePrefix = Path.GetFileNameWithoutExtension(fileName); uploadFile.FileNameExtension = Path.GetExtension(fileName); uploadFile.Size = file.ContentLength >= 1024 ? file.ContentLength / 1024 : 1; uploadFile.FilePath = filePath; uploadFile.FileMapPath = fileMapPath; uploadFile.IsSuccess = true; } catch (Exception Ex) { uploadFile.IsSuccess = false; uploadFile.ErrorMessage = Ex.Message; return(uploadFile); } #endregion return(uploadFile); }
/// <summary> /// 上传文件 /// </summary> /// <param name="file">FileUpload</param> /// <param name="filePath">要保存的文件路径,</param> /// <param name="lstFileType">允许上传的文件类型,大小,单位为KB,Size=0表示无任何限制</param> /// <param name="fileName">自定义文件名称</param> public stuUpLoadFile Upload(HttpPostedFile file, string filePath, string fileName, List<stuUpLoadFileType> lstFileType = null) { var uploadFile = new stuUpLoadFile {ErrorMessage = string.Empty}; filePath = Url.ConvertPath(filePath); if (!filePath.EndsWith("/")) { filePath += "/"; } //判断根目录,保存目录是否为空 if (string.IsNullOrWhiteSpace(filePath)) { uploadFile.ErrorMessage = "保存路径没有填写,请联系管理员!"; return uploadFile; } // 检测上传文件的合法性 if (!CheckFile(file, ref uploadFile, lstFileType)) { return uploadFile; } #region 上传文件操作 try { #region 创建文件目录(任何级别目录) var fileMapPath = Webs.GetMapPath(filePath); //获取目录绝对路径 Directory.CreateDirectory(fileMapPath); #endregion file.SaveAs(fileMapPath + fileName); uploadFile.FileName = fileName; uploadFile.FileNamePrefix = Path.GetFileNameWithoutExtension(fileName); uploadFile.FileNameExtension = Path.GetExtension(fileName); uploadFile.Size = file.ContentLength >= 1024 ? file.ContentLength/1024 : 1; uploadFile.FilePath = filePath; uploadFile.FileMapPath = fileMapPath; uploadFile.IsSuccess = true; } catch (Exception Ex) { uploadFile.IsSuccess = false; uploadFile.ErrorMessage = Ex.Message; return uploadFile; } #endregion return uploadFile; }
/// <summary> /// 检查每个文件的合法检验 /// </summary> private bool CheckFile(HttpPostedFile file, ref stuUpLoadFile uploadFile, List<stuUpLoadFileType> lstFileType = null) { //获取文件名前缀 var fileNamePrefix = Path.GetFileNameWithoutExtension(file.FileName); //获取文件名后缀 var fileNameExtension = file.FileName.LastIndexOf('.') > -1 ? Path.GetExtension(file.FileName).Substring(1) : Path.GetExtension(file.FileName); //文件容量 var fileContentLength = file.ContentLength/1024; if (string.IsNullOrWhiteSpace(file.FileName)) { uploadFile.ErrorMessage = "未检测到文件上传!"; return false; } if (string.IsNullOrWhiteSpace(fileNamePrefix)) { uploadFile.ErrorMessage = "文件: [ " + file.FileName + " ] 前缀名不能为空"; return false; } if (file.ContentLength > 0 && fileContentLength == 0) { fileContentLength = 1; } if (fileContentLength <= 0) { uploadFile.ErrorMessage = "文件: [ " + file.FileName + " ] 的大小不能为0KB"; return false; } //循环文件类型,长度 if (lstFileType == null || lstFileType.Count == 0) { return true; } //true表示属于允许上传的类型 var isfileExtension = false; foreach (var fileType in lstFileType) { //判断文件类型,长度是否允许上传 if (!fileNameExtension.IsEquals(fileType.type)) { continue; } isfileExtension = true; //判断文件容量是否超过上限 if (fileType.size != 0 && fileContentLength > fileType.size) { uploadFile.ErrorMessage = string.Format("文件类型为 [ {0} ] 的容量不能超过: [ {1} KB ]", fileType.type, fileType.size); return false; } break; } if (!isfileExtension) { uploadFile.ErrorMessage = string.Format("文件扩展名: [ {0} ] 不允许上传", fileNameExtension); return false; } return true; }
/// <summary> /// 检查每个文件的合法检验 /// </summary> private bool CheckFile(HttpPostedFile file, ref stuUpLoadFile uploadFile, List <stuUpLoadFileType> lstFileType = null) { //获取文件名前缀 var fileNamePrefix = Path.GetFileNameWithoutExtension(file.FileName); //获取文件名后缀 var fileNameExtension = file.FileName.LastIndexOf('.') > -1 ? Path.GetExtension(file.FileName).Substring(1) : Path.GetExtension(file.FileName); //文件容量 var fileContentLength = file.ContentLength / 1024; if (string.IsNullOrWhiteSpace(file.FileName)) { uploadFile.ErrorMessage = "未检测到文件上传!"; return(false); } if (string.IsNullOrWhiteSpace(fileNamePrefix)) { uploadFile.ErrorMessage = "文件: [ " + file.FileName + " ] 前缀名不能为空"; return(false); } if (file.ContentLength > 0 && fileContentLength == 0) { fileContentLength = 1; } if (fileContentLength <= 0) { uploadFile.ErrorMessage = "文件: [ " + file.FileName + " ] 的大小不能为0KB"; return(false); } //循环文件类型,长度 if (lstFileType == null || lstFileType.Count == 0) { return(true); } //true表示属于允许上传的类型 var isfileExtension = false; foreach (var fileType in lstFileType) { //判断文件类型,长度是否允许上传 if (!fileNameExtension.IsEquals(fileType.type)) { continue; } isfileExtension = true; //判断文件容量是否超过上限 if (fileType.size != 0 && fileContentLength > fileType.size) { uploadFile.ErrorMessage = string.Format("文件类型为 [ {0} ] 的容量不能超过: [ {1} KB ]", fileType.type, fileType.size); return(false); } break; } if (!isfileExtension) { uploadFile.ErrorMessage = string.Format("文件扩展名: [ {0} ] 不允许上传", fileNameExtension); return(false); } return(true); }