美文网首页
微信小程序:flask_uploads 上传图片

微信小程序:flask_uploads 上传图片

作者: 我的小小笔尖 | 来源:发表于2022-05-22 22:24 被阅读0次

小程序端代码:

// 上传图片
  uploadImage() {
    var that = this
    let url = 'https://www.kwaili.com:8001/appfls/uploadimage'
    let list = this.data.list
    for(let i=0; i<list.length; i++) {
      let filePth  = list[i].tempFilePath
      let uploadStatus = 'list['+i+'].uploadStatus'
      wx.uploadFile({
        url: url,
        filePath: filePth,
        name: 'photo',
        formData: {
          'openid': that.data.openid          
        },
        success (res){
          console.log('wx.uploadFile success', i)
          if(res.statusCode!=200) {            
            console.error('upload file failure', i, res)
            return
          }

          // 上传结果
          let result = JSON.parse(res.data)
          if(result.status==1) {
            console.log('upload file success', i, result)
            that.setData({
              [uploadStatus]: 1,
            })
          }else {
            console.error('upload file error', i, result)
            that.setData({
              [uploadStatus]: -1,
            })
          }
        },
        fail(err) {
          console.error('wx.uploadFile failure', i, err)
          that.setData({
            [uploadStatus]: 0,
          })
        },
        complete(res) {
          console.log('wx.uploadFile complete', i)
          // 全部上传则保存数据
          if(that.uploadAllComplete()) {
            that.saveShare()
          }
        }
      })
    }
  },

服务器端代码:

# 微信上传图片
@app.route('/appfls/uploadimage', methods=['POST'])
def appflsuploadimage():
    if request.method == 'POST' and 'photo' in request.files:
        try:
            # 上传文件夹
            ym = time.strftime('%Y%m',time.localtime())
            openid = request.form['openid']
            folder= os.path.join(ym, openid)
            # 新文件名
            photo = request.files['photo']
            suffix = photo.filename.split(".")[1]
            uid = str(uuid.uuid4())
            suid = ''.join(uid.split('-'))
            newfilename = suid +'.'+ suffix
            # 保存文件
            uploaded_file_name = photos.save(photo, folder=folder, name=newfilename)
            # 静态文件路径
            static_file_path = os.path.join(photo_upload_path,folder,newfilename)
        except Exception as e:
            return {'status':-2, 'message':'upload error', 'exception':str(e)}
        else:
            return {'status':1, 'message':'upload success', 'static_file_path':static_file_path}
    else:
        return {'status':-1, 'message':'post request not allow'}

flask_uploads 相关配置

# 上传图片,配置参数使用UPLOADED_ + UploadSet.name + _DEST形式
photos = UploadSet('PHOTO') # 上传图片类
photo_upload_path = os.path.join('static','upload','appfls')
app.config['UPLOADED_PHOTO_DEST'] = os.path.join(os.path.dirname(os.path.abspath(__file__)), photo_upload_path) # 上传图片保存的目录
IMAGES = tuple('jpg jpe jpeg png gif svg bmp'.split())
app.config['UPLOADED_PHOTO_ALLOW'] = IMAGES # 允许上传的图片类型,其他类型不允许
configure_uploads(app, photos) # 初始化配置

相关文章

网友评论

      本文标题:微信小程序:flask_uploads 上传图片

      本文链接:https://www.haomeiwen.com/subject/mdelprtx.html