微信小程序上傳圖片,web api後臺接收(完全版)

今天花了一天時間,研究了微信小程序的圖片上傳功能。總體思路爲:小程序讀取手機相冊或者攝像頭拍照,然後將圖片post到web api。api接收圖片信息,存到硬盤,然後將路徑存儲在數據庫中。

問題:1、首先要解決跨域問題,這個在mvc5的web api的默認配置中修改即可。

          2、post提交問題,在這裏我遇到了大坑,往上研究了一大圈,各種五穀雜糧的代碼,基本上都是浪費流量。我的解決方案一會發出。

解決了上面兩個問題,直接上代碼:

wx.chooseImage({
  success: function(res) {
    var tempFilePaths = res.tempFilePaths
    wx.uploadFile({
      url: 'https://。。。。/upload', //僅爲示例,非真實的接口地址
      filePath: tempFilePaths[0],
      name: 'file',
      formData:{
        'user': 'test'
      },
      success: function(res){
        var data = res.data
        //do something
      }
    })
  }
})

使用上面的代碼就可以完成圖片的上傳,url修改爲你的api地址。

然後是web api的代碼,奉獻核心代碼:

 public IHttpActionResult Post()
        {
            HttpFileCollection files = HttpContext.Current.Request.Files;

            foreach (string key in files.AllKeys)
            {
                HttpPostedFile file = files[key];//file.ContentLength文件長度
                if (string.IsNullOrEmpty(file.FileName) == false)
                    file.SaveAs(HttpContext.Current.Server.MapPath("~/imgcoll/") + file.FileName);
            }

            return Ok("success2");
        }

好了,這是我花了一天總結的,看起來很簡單,實際上真的很費功夫,希望和我一樣被困擾的同仁能夠順利的完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章