/// <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测试上传文件接口:
