首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >烧瓶-上传总是抛出'UploadNotAllowed‘错误,即使没有限制

烧瓶-上传总是抛出'UploadNotAllowed‘错误,即使没有限制
EN

Stack Overflow用户
提问于 2015-08-07 19:02:56
回答 1查看 3K关注 0票数 2

烧瓶上传有一个叫做UploadSet的东西,它被描述为“单一的文件集合”。我可以使用此上传集将我的文件保存到预定义的位置。我已经定义了我的设置:

代码语言:javascript
复制
app = Flask(__name__)
app.config['UPLOADS_DEFAULT_DEST'] = os.path.realpath('.') + '/uploads'
app.config['UPLOADED_PHOTOS_ALLOW'] = set(['png', 'jpg', 'jpeg'])
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024

# setup flask-uploads
photos = UploadSet('photos')
configure_uploads(app, photos)

@app.route('/doit', method=["POST"])
def doit():
    myfile = request.files['file']
    photos.save(myfile, 'subfolder_test', 'filename_test')

    return ''' blah '''

这应该保存到./uploads/photos/subfolder_test/filename_test.png

我的测试映像是: 2.6MB,是一个png文件。当我上传这个文件时,我得到了错误:

代码语言:javascript
复制
...
File "/home/btw/flask/app.py", line 57, in doit
    photos.save(myfile, 'subfolder_test', 'filename_test')
File "/usr/local/lib/python2.7/dist-packages/flaskext/uploads.py", line 388, in save
    raise UploadNotAllowed()
UploadNotAllowed

然而,它并没有确切地说明什么是不允许的。我也尝试删除所有的限制,但应用程序仍然抛出这个错误。为什么?

编辑

好吧,所以我发现问题并不是由约束引起的。造成问题的是子文件夹和/或文件名:

代码语言:javascript
复制
# This works
# saves to: ./uploads/photos/filename_test.png
photos.save(myfile)

但是我想保存到我的自定义位置./uploads/photos/<custom_subdir>/<custom_filename>。正确的做法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-07 20:20:15

你也需要给你的filename_test扩展

代码语言:javascript
复制
photos.save(myfile, 'subfolder_test', 'filename_test.png')

UploadSet检查新文件名的扩展名,如果不允许新扩展名,则会抛出异常。

因为您没有给新文件一个扩展名,所以它不会识别它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31884903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档