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