导读:今天首席CTO笔记来给各位分享关于django如何判断上传的文件大小为空的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
django celery 上传处理大文件出错
小于2.5M时,会放在 InMemoryFileUploadFile(内存里面) 对象里面;
大于2.5M时,会放在 TemporaryFileUploadFile (磁盘文件)里面
而 celery 做pickle_dump时会去找file object的encoding
这个encoding目前发现只能存在 InMemoryFileUploadFile 对象里面
所以,我们只有将所有上传文件都放到 InMemoryFileUploadFile 里面,才能通过celery
可以通过在settings里面设置
来修改策略使所有50M以内的文件都存在 InMemoryFileUploadFile 里面
这个设置谨慎使用,防止内存溢出!!!
django 上传文件问题
这个问题不是文件上传的问题,是很简单的文件编码。
这个在python里有些费解。经常出错。你要明白,django缺省使用unicode。如果你使用str类型。它会自动给你转换。这是python自动转换。不过在windows下,缺省它用GBK, 有时候会出错。
你这个环境正好是windows。 英文进行encode('utf-8')没有问题。
我建议你在文件前面加上一个coding:utf-8
然后将这句改成
assert(type(file_name)==unicode)
fpath=u'D:/texthub/texthub/site_media/upload/'+file_name.encode('gb18030')
你自己试验一下。
Django里的模板中,使用if语句判断大小, 比如if x
你可以将这个判断放在python的view里,然后将结果作为一个变量传递进去。这样就解决了。
我印象中template中并不所有的python 语法都支持。
有ifequal,似乎没有ifgreat, 似乎if (offset-30)也不成。
所以还是把这个判断放在view里。
结语:以上就是首席CTO笔记为大家介绍的关于django如何判断上传的文件大小为空的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。