python如何上传文件,Python 文件上传
本文章代码上传在码云上
代码地址
git @ gitee。com : danyujie/upanddown。吉特这里我们使用flask框架,简单实用
目录结构:
upandown/
静态/
css/
js/
jquery.min.js
toastr.min.js
模板/
index.html
测试。巴拉圭相关推荐: 《Python基础教程》
首先我们需要一个页面在templates/index.html(这里使用form表单实现)
!DOCTYPEhtml
超文本标记语言
头
元字符集=UTF八国集团
meta name= viewport content= width=device-width,initial-scale=1.0
meta http-equiv= X-UA-Compatible content= ie=edge
linkrel=样式表href=./static/css/toastr.min.css
scriptsrc=./static/js/jquery。量滴js /脚本
scriptsrc=./static/js/toastr。量滴js /脚本
标题文档/标题
/头
身体
form method= POST action=/upload enctype= multipart/form-data
输入类型=文件名称=文件id=文件
输入类型=提交值=上传
a ref= /a
/formhr
(=国家统计局标准)国家标准局
p;<olid="filelist">
</ol>
<script>
functioncheckstatus(){
if('{{status}}'=='OK'){
toastr['success']("上传成功");
}elseif('{{status}}'=='null'){
toastr['error']("上传失败");
}
}
functionget_list(){
$.ajax({
url:'/getlist',
type:'GET',
success:function(result){
len_result=result.length;
for(varx=0;x<len_result;x++){
$("#filelist").append('<br><ahref=/download/'+result[x]+'>'+result[x]
+'</a>');
}
alert(content_list);
},
error:function(){
alert("失败");
}
});
}
checkstatus();
get_list();
</script>
</body>
</html>然后是后台接收
test.py
#!/usr/bin/envpython#-*-coding:utf-8-*-
fromflaskimportFlask,render_template,request,send_from_directory,jsonify,redirect
importos
#importsys
#reload(sys)
#sys.setdefaultencoding('utf-8')
app=Flask(__name__)
#ALLOWED_EXTENSTIONS=set(['png','jpg','jpeg','gif'])
app.config['UPLOAD_FOLDER']=os.getcwd()
download_floder=app.config['UPLOAD_FOLDER']+'/upload'
defallow_file(filename):
allow_list=['png','PNG','jpg','doc','docx','txt','pdf','PDF','xls','rar','exe','md','zip']
a=filename.split('.')[1]
ifainallow_list:
returnTrue
else:
returnFalse
@app.route('/main')
defhome():
returnrender_template('index.html')
@app.route('/getlist')
defgetlist():
file_url_list=[]
file_floder=app.config['UPLOAD_FOLDER']+'/upload'
file_list=os.listdir(file_floder)
forfilenameinfile_list:
file_url=url_for('download',filename=filename)
file_url_list.append(file_url)
#printfile_list
returnjsonify(file_list)
@app.route('/download/<filename>')
defdownload(filename):
returnsend_from_directory(download_floder,filename,as_attachment=True)
@app.route('/upload',methods=['POST','GET'])
defupload():
file=request.files['file']
ifnotfile:
returnrender_template('index.html',status='null')
#printtype(file)
ifallow_file(file.filename):
file.save(os.path.join(app.config['UPLOAD_FOLDER']+'/upload/',file.filename))
returnrender_template('index.html',status='OK')
else:
return'NO'
if__name__=='__main__':
app.run(debug=True,host='0.0.0.0')
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。