/// <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測試上傳文件接口:
