/// <summary> /// 上传头像 /// </summary> /// <returns></returns> [HttpPost,Route("UploadPhoto")] public HttpResponseMessage UploadPhoto(string SignKey) { ResultMsg resultMsg = null; #region Api处理模块 try { //获取上传文件 HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; //判断是否有文件上传 if (files.Count==0) { DataTable dt = new DataTable(); resultMsg = new ResultMsg(); resultMsg.StatusCode = (int)StatusCodeEnum.Success; resultMsg.Info = "请选择要上传的文件!"; resultMsg.Data = ""; return HttpResponseExtension.toJson(JsonConvert.SerializeObject(resultMsg)); } //得到上传文件格式 string FileEextension = Path.GetExtension(files[0].FileName); string[] LimitPictureType = { ".jpg", ".png" }; if (LimitPictureType.Contains(FileEextension)) { //设置文件上传路径 //string fileHeadImg = "C:/养老项目/业务系统/IIS养老发布文件/fileHeadImg"; string fileHeadImg = DataAccess.AppInfo.UserMapPath; //也可以将路径配置到xml中(推荐) string newFileName = sArray[1]; //需要更新头像的用户Id string fullFileName = string.Format("{0}/{1}{2}", fileHeadImg, newFileName, FileEextension); //配置数据库保存格式 string SavePhotoUrl = string.Format("{0}",FileEextension); ////创建文件夹,保存文件 string path = Path.GetDirectoryName(fullFileName); #region 检查上传的物理路径是否存在,不存在则创建 if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } #endregion //保存文件 文件存在则先删除原来的文件 if (File.Exists(fullFileName)) { File.Delete(fullFileName); } files[0].SaveAs(fullFileName); //修改数据库 var _data = DAL.UploadPhoto(newFileName, SavePhotoUrl); if (_data != null && _data != (object)"-1") { resultMsg = new ResultMsg(); resultMsg.StatusCode = (int)StatusCodeEnum.Success; resultMsg.Info = StatusCodeEnum.Success.GetEnumText(); resultMsg.Data = 1; } else { DataTable dt = new DataTable(); resultMsg = new ResultMsg(); resultMsg.StatusCode = (int)StatusCodeEnum.Success; resultMsg.Info = "文件存储异常,请稍后重试"; resultMsg.Data = -1; } } else { DataTable dt = new DataTable(); resultMsg = new ResultMsg(); resultMsg.StatusCode = (int)StatusCodeEnum.Success; resultMsg.Info = "图片上传操作失败,请选择扩展名为:.jpg, .png, 等类型图片!"; resultMsg.Data = -1; } } catch (Exception ex) { resultMsg = new ResultMsg(); resultMsg.StatusCode = (int)StatusCodeEnum.Success; resultMsg.Info = ex.Message; resultMsg.Data = -1; } return HttpResponseExtension.toJson(JsonConvert.SerializeObject(resultMsg)); #endregion }
使用PostMan测试上传文件接口:
