Flask上传XML文件触发UploadNotAllowed错误的解决咨询
Flask上传XML文件触发UploadNotAllowed错误的解决方法
我正在开发一个Python后端应用,最终将用于向尚未定义的端点发送请求。在等待需求明确期间,我使用Flask创建了两个测试端点验证服务器接收文件的功能。目前代码可正常处理.txt、.wav、.mp3等格式文件,但上传.xml文件时会触发flask_uploads.exceptions.UploadNotAllowed错误。
测试代码
from flask import Flask, request from flask_uploads import UploadSet, configure_uploads, AUDIO, TEXT ALLOWED_EXTENSIONS = {'xml', 'wav'} app = Flask(__name__) audio = UploadSet('audio', AUDIO) docs = UploadSet('docs', TEXT) app.config['UPLOADED_AUDIO_DEST'] = 'static/audio' app.config['UPLOADED_DOCS_DEST'] = 'static/docs' configure_uploads(app, (audio, docs)) def allowed_file(filename): return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS @app.route('/upload-audio', methods=['GET', 'POST']) def upload_audio(): if request.method == 'POST' and 'audiofile' in request.files: filename = audio.save(request.files['audiofile']) return "Audio file: '{}' uploaded successfully!".format(filename) return ''' <form method=post enctype=multipart/form-data> <input type=file name=audiofile> <input type=submit value=Upload> </form> ''' @app.route('/upload-xml', methods=['GET', 'POST']) def upload_xml(): if request.method == 'POST' and 'xmlfile' in request.files: filename = docs.save(request.files['xmlfile']) return "XML file: '{}' uploaded successfully!".format(filename) return ''' <form method=post enctype=multipart/form-data> <input type=file name=xmlfile> <input type=submit value=Upload> </form> ''' if __name__ == '__main__': app.run(debug=True)
错误信息
错误日志显示触发500内部服务器错误,核心异常为flask_uploads.exceptions.UploadNotAllowed。
解决方法
修改代码,在导入时添加DATA类型,并将docs的UploadSet类型从TEXT改为DATA,关键代码如下:
from flask_uploads import UploadSet, configure_uploads, AUDIO, DATA docs = UploadSet('docs', DATA)
内容的提问来源于stack exchange,提问作者biker_steve
相关产品推荐
相关产品推荐

