首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python Flask接收来自cropit的HTML帖子

使用Python Flask接收来自cropit的HTML帖子
EN

Stack Overflow用户
提问于 2018-01-02 10:28:08
回答 1查看 34关注 0票数 0

我是新的网络开发,并有一个小的网络应用程序,我需要一个用户上传一个裁剪的图像。我的问题是我无法获取在jQuery post请求中发送的图像。

我的Javascript和HTML看起来像这样:

代码语言:javascript
复制
function sendImage(imageData) {
	var info = {}
	info.upload = imageData
	info.gender = gender.value
	info.ageGroup = ageGroup.value
	
	$.ajax({
	  type: "POST",
	  url: "/uploadToS3",
	  data: info,
	  enctype: 'multipart/form-data',
	  dataType: "json",
	  success: console.log("image written")
	});
}
代码语言:javascript
复制
 <div class="image-editor">
      <input type="file" class="cropit-image-input">
      <div class="cropit-preview"></div>
      <div class="image-size-label">
        Resize image
    </div>
      <input type="range" class="cropit-image-zoom-input">
      <button class="export">Export</button>
</div>

下面是处理post请求的python代码

代码语言:javascript
复制
@app.route('/uploadToS3', methods = ['POST'])
def uploadToS3():
    username = session.get('username')
    image = request.files.get('upload')
    gender = request.form['gender']
    ageGroup = request.form['ageGroup']
    fileName = getNewFileName()
    print(image)
    return redirect('/')

图像打印为“None”,问题似乎出在我请求上载参数的行中。发布到Flask的数据(取自表单数据)是upload: data :image/png;base64和一个非常长的字符串。所以它看起来像是正确地发布了。

如有任何提示,我们将不胜感激

EN

回答 1

Stack Overflow用户

发布于 2018-01-02 19:00:29

根据对this question的回答,在传递文件时不能只使用一个简单的对象作为data

为此,您必须执行以下操作:

代码语言:javascript
复制
var formData = new FormData();
formData.append("gender",gender.value); // And so on...
formData.append("upload",$("#file")[0].files[0]); // When your file input has id="file"

$.ajax({
  type: "POST",
  url: "/uploadToS3",
  data: formData,
  enctype: 'multipart/form-data',
  // And so on...
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48054922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档