获取上传文件的MIME Type
2009 5 3 01:52 AM 2884次查看
分类:Google App Engine 标签:Google App Engine, Python
嘛,纯粹是根据扩展名来猜MIME Type的,所以不保证准确。
首先是获取文件名。
浏览器端需要一个这样的form来上传文件:
<form action="/upload" enctype="multipart/form-data" method="post">
<div><input type="file" name="file" /></div>
<div><input type="submit" value="上传" /></div>
</form>
服务器端则从request.body中找出文件名。一个可能的body如下:
------WebKitFormBoundaryn8MN216PVRt+shPZ Content-Disposition: form-data; name="file"; filename="desktop.ini" [DeleteOnCopy] Owner=keakon Personalized=5 PersonalizedName=My Documents ------WebKitFormBoundaryn8MN216PVRt+shPZ--可以看出,filename便是文件名,于是用正则表达式处理一下即可:
import re
class Upload(webapp.RequestHandler):
def post(self):
p = re.compile(r'filename=\"(.*?)\"')
m = p.search(self.request.body)
self.response.out.write(m.group(1))
测试一下,拿到这样一个文件名:C:\Documents and Settings\keakon\桌面\朱丽叶与梁山伯.txt接着就用到mimetypes了,使用很简单,最后一行改一下即可:
self.response.out.write(mimetypes.guess_type(m.group(1)))
再测试一下:('text/plain', None)搞定收工~
向下滚动可载入更多评论,或者点这里禁止自动加载。