李迎辉

李迎辉的博客

他的个人主页  他的博客

试验了一下werkzeug的上传长度设置

李迎辉  2009年09月28日 星期一 12:45 | 1420次浏览 | 6条评论

在新版本werkzeug中,处理request时可以有两个属性可以设置,一个是max_content_length,它是用来控制最大的上传内容的。还有一个是max_form_memory_size,它是用来控制读取内容所占内存的最大值。好象没看到如何控制文件大小。不过一般控制比较近似就可以了,因此可以就使用max_content_length就可以了。

想试验也比较简单:

from werkzeug import Request

Request.max_content_length = 1 * 1024 * 1024

上面的代码就是限定了最大的content大小。当然如果你使用Uliweb,你也可以导入:

from uliweb.core.SimpleFrame import Request

后面一样就可以了。

当上传内容超出大小时,它会抛出一个异常,返回码是413的。

在Doto中,我使用了FancyUpload来处理,它也可以限定上传的大小,比werkzeug要精确多了。所以可以前后端相结合。

werkzeug的文档参见:  http://werkzeug.pocoo.org/documentation/0.5.1/wrappers.html

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !
夏清然

回复 夏清然  2009年09月29日 星期二 17:46

从全局看,上传的大小限制在webserver上做比较好。
nginx + upload_progress,同时设定其client_max_body_size上限,同时通过js检查upload_progress的返回结果就能得到是否超过大小限制和上传的进度显示。

1条回复

  • 李迎辉

    回复 李迎辉  2009年09月29日 星期二 20:53

    你说的是一个办法,让web server来控制。不过werkzeug的方法是在应用中进行控制。

    0条回复

電波系山寨文化科学家

回复 電波系山寨文化科学家  2009年09月29日 星期二 17:15

好像楼主的文章我就从来没有能看懂的...

3条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号