使用AJAX上传文件、处理并使用Flask将结果返回到Javascript
我已经了解了如何使用AJAX和Flask上传文件,这样页面就不会刷新,文件就会上传到服务器的某个指定目录中。 在Python方法(upload())中,我想用一些正则表达式处理文件名,并向Javascript文件返回一个数组。 即使我试图请求一个数组,我是否仍然返回render_模板(index.html) HTML(index.HTML)使用AJAX上传文件、处理并使用Flask将结果返回到Javascript,javascript,jquery,python,ajax,flask,Javascript,Jquery,Python,Ajax,Flask,我已经了解了如何使用AJAX和Flask上传文件,这样页面就不会刷新,文件就会上传到服务器的某个指定目录中。 在Python方法(upload())中,我想用一些正则表达式处理文件名,并向Javascript文件返回一个数组。 即使我试图请求一个数组,我是否仍然返回render_模板(index.html) HTML(index.HTML) 在这里上传数据包 上传您想要阅读的.pdf或.docx文件 接近 上传 Javascript $(函数(){ $(“#上传文件btn”)。单击(函数()
在这里上传数据包
上传您想要阅读的.pdf或.docx文件
接近
上传
Javascript
$(函数(){
$(“#上传文件btn”)。单击(函数(){
var form#u data=new FormData($('#上传文件')[0]);
$.ajax({
键入:“POST”,
url:“/uploadajax”,
数据:表格数据,
contentType:false,
cache:false,
processData:false,
async:false,
成功:功能(数据){
console.log('Success!');
},
});
});
});
蟒蛇(烧瓶)
@app.route('/uploadajax',methods=['POST'])
def upload():
file=request.files['file']
如果文件和允许的文件(file.filename):
filename=secure\u文件名(file.filename)
保存(os.path.join(app.config['UPLOAD\u FOLDER'],文件名))
返回渲染模板('index.html')
我正在尝试在$.AJAX{}部分之后的Javascript中添加这个AJAX调用,但是我做得对吗?我不确定是否可以在一个Javascript函数中调用同一个Python方法两次,或者是否有更好的方法来实现这一点
ajaxRequest=ajaxFunction()
ajax.onreadystatechange=函数(){
if(ajaxRequest.readyState==4){
if(ajaxRequest.status==200){
alert(ajaxRequest.responseText)//我希望Python将数组放入这个ajaxRequest.responseText变量,但不确定如何放入。
}
其他的
警报('XML请求出错')
}
}
open(“GET”,“uploadajax”,true);
ajaxRequest.send(空);
有什么帮助吗?谢谢。你没有说你想要实现什么(隐藏一些div,滚动窗口…),这是一个主要问题。总结应该做的事情:
不要回来
return render_template('index.html')
但是fe。如果要通知用户上载状态,请将此调用的状态设置为
return Response('OK')
或者其他身份-诺克什么的。
然后在js中:
success: function(data) {
console.log('Success!');
},
操纵反应
if (data == 'OK') {
alert ('YAY, FILE UPLOADED');
};
如果您想返回数组,需要转换为json,而不发送任何模板html…只发送json字符串,比如jsonify(文件名)?如何让Javascript识别正在发送的内容并更改标记以匹配?非常好的代码!帮我做项目,对不起。我使用re.findall()从PDF生成一个列表,然后我想将列表返回到Javascript.Ok。因此,您只需在dict中收集数据,然后返回jsonify(这个dict),并在upload success部分使用它。