WebApi通过接口上传文件


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



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM