flask实现图片上传
前端调用接口,进行访问:在js文件下,ajax去访问地址
注意:上面是一个需要提交内容的form,通常情况下,我们直接通过form提交的话, 提交后当前页面跳转到form的action所指向的页面。然而,很多时候我们比不希望提交表单后页面跳转,那么,我们就可以使用ajaxSubmit(obj)来提交数据。
$('#form-name').submit(function(){ $(this).ajaxSubmit({ # 访问后端的接口 url:'/house/images/', # 请求的方式 type:'POST', # 数据的类型 dataType:'json', # 请求成功,进行的操作 success:function(data){ if (data.code == '200'){ } }, # 请求失败进行相应的操作 error:function(data){ alert(data.msg) } })
flask后台相应的接口
将图片放在static文件夹下
image_url = os.path.join(os.path.join('/static', 'upload'), images.filename)
@house_blueprint.route('/images/', methods=['POST']) def newhouse.images(): # 获得图片(images:<FileStorage: 'wa.jpg' ('image/jpeg')>) images = request.files.get('house_image') house_id = request.form.get('house_id') # 得到upload的路径 upload_dir = os.path.join(os.path.join(BASE_DIR,'static'), 'upload') # 得到上传图片要保存的路径 # 'D:\\project\\houseproject\\static\\upload\\wa.jpg' url = os.path.join(upload_dir,images.filename) # 保存图片 images.save(url) house_image = HouseImage() house_image.house_id = house_id image_url = os.path.join(os.path.join('/static', 'upload'), images.filename) house_image.url = image_url try: house_image.add_update() except: return jsonify(status_code.DATABAE_ERROR) house = House.query.get(house_id) if not house.index_image_url: house.index_image_url = image_url try: house.add_update() except: return jsonify(status_code.DATABAE_ERROR) return jsonify(code=status_code.OK, image_url=image_url)