You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 02:20:56