【发布时间】:2017-02-26 18:02:50
【问题描述】:
我正在尝试使用 Ajax POST 请求在 FormData 中发送图像文件。 我面临两个问题:
- 不知道怎么提取烧瓶部分的FormData
- 发出 ajax POST 请求时出现 500 内部服务器错误(不确定这是不是因为 1)
谢谢
烧瓶python代码:
@app.route('/', methods=['GET','POST'])
def upload_file():
if request.method == 'POST':
file = request.files['file']
if file: # and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(os.getcwd()+"/static", "current_image.jpg"))
return jsonify({'tasks': tasks})
HTML 和 Javascript 代码:
<input id="pictureInput" type=file name=file>
<input type=submit value=Upload id="button">
<script type="text/javascript">
var pictureInput = document.getElementById("pictureInput");
var myFormData = new FormData();
myFormData.append('pictureFile', pictureInput.files[0]);
$("#button").click(function(){
console.log(pictureInput);
console.log(pictureInput.files[0]);
console.log(myFormData);
$.ajax({
url: "http://localhost:8000/",
type: 'POST',
processData: false, // important
contentType: false, // important
dataType : 'json',
data: myFormData,
success : function(data){
console.log(data);
},
});
});
</script>
【问题讨论】:
-
添加那个 500 响应的 content 是什么?实际错误是什么?
-
对不起丹尼尔,我明白你的意思。我添加了使用 POSTMAN 得到的错误响应。
-
嗯,这与您最初显示的代码不同;错误发生在
sys.stdout.write。 -
很抱歉。我试图调试它。现在,当使用原始代码时,我收到“错误请求 - 浏览器(或代理)发送了一个此服务器无法理解的请求。”
-
面临同样的问题。无法访问 Flask 中的 FormData。如果有人有解决方案,请告诉我。