1
ddyy 2014-05-04 16:10:39 +08:00
这种问题还用问吗?就像问“有没有一种库能计算出1+1等于几?”
|
2
guoqiao 2014-05-04 16:21:29 +08:00 1
要求不高的话, form里加个clean方法即可:
def clean_xls(self): xls = self.cleaned_data['xls'] if not xls.name.endswith('.xls'): raise forms.ValidationError('xls only') return xls 当然,这样不能防止别人故意改后缀. |
3
HoHo 2014-05-04 16:31:42 +08:00 6
别人的问题,如果知道就友好地回复,特别讨厌那些对小白问题不屑一答的回复者,若你觉得回答简单问题会影响你高大上的形象,那你大可不必回复,没有必要在别人不懂恰好自己有点懂的或者以为自己懂的地方自我感觉良好。
|
4
xbonline 2014-05-04 16:56:45 +08:00
呵呵 同意楼上
|
5
fanzeyi 2014-05-04 17:38:45 +08:00 3
|
6
wangyongbo 2014-05-04 17:40:45 +08:00
我觉得其实没必要判断,简单的看一下扩展名对不对,就行了。
你肯定是要从xls文件读取内容的,无论用的什么方法,能读出来内容就算格式正确,读不出来就是格式错误。在读内容的时候 加一个 try... except... 可以不 |
7
kxxoling 2014-05-04 18:54:20 +08:00 1
|
8
magine OP |
12
Debiancc 2014-05-04 21:31:57 +08:00
mime啊,亲
|
13
WildCat 2014-05-04 23:38:46 +08:00 via iPhone
|
14
qdcanyun 2014-05-04 23:59:54 +08:00
可以试下python-magic
|
16
wuyazi 2014-05-05 09:03:03 +08:00
magic+1
|
17
shuson 2014-05-05 09:36:40 +08:00 1
另一种思路,在上传前用js判断文件后缀名类型(不能防止恶意用户)
|
18
lu18887 2014-05-05 13:05:13 +08:00 1
首先要看你的这个需求是出于什么考虑,是控制用户上传恶意文件还是只是限制用户上传某类文件(比如只允许传某种格式的图片)。
如果是防止恶意文件上传,我首先考虑的做法是把上传的文件的属性改成只读就可以了。(上传之后,后端控制) 如果是限制上传的文件类型,就放在前端(没有上传文件之前)控制,总不能用户上传完了你再提示用户不支持该格式吧…… |
21
bravecarrot 2015-02-02 00:13:00 +08:00
@magine 从长远来看,建议不要这样做,来自客户端的数据都是不能完全信任的,客户端验证不靠谱。
|
22
2805408253 2017-12-05 16:23:01 +08:00
@bravecarrot 先前端 js 验证,后端同时也要验证(你懂得)。
|