http文件上传到磁盘

时间:2015-11-18 14:32:37

标签: python http file-upload cgi

我正在使用类型文件的HTML输入将文件上传到我自己的服务器。在服务器上的Python脚本中,我可以接收文件及其元数据(如文件名和类型)作为FieldStorage对象。

我已将该对象的字段打印到HTML页面,以便查看它们的内容。当我让它打印文件名,输入和文件(转换为字符串)时,我得到了这个:

Filename: Lighthouse.jpg Type: image/jpeg File: <open file '<fdopen>', mode 'w+b' at 0x04403578>

我假设0x04403578是服务器内存中文件的地址。但mode 'w+b'是什么意思?如果我必须支持任意文件类型,如何通过Python将该文件保存到磁盘?

1 个答案:

答案 0 :(得分:1)

文件只是一个打开的文件对象,就像从open获得的那样。 <fdopen>表示已从文件描述符转换。 w+b表示它在二进制模式下可以读写。

你可以把它写成普通文件,即

w = open('<filename>','w+b')
w.write(f.read())