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