我正在使用类型文件的HTML输入将文件上传到我自己的服务器。在服务器上的Python脚本中,我可以接收文件及其元数据(如文件名和类型)作为FieldStorage对象。
我已将该对象的字段打印到HTML页面,以便查看它们的内容。当我让它打印文件名,输入和文件(转换为字符串)时,我得到了这个:
Filename: Lighthouse.jpg
Type: image/jpeg
File: <open file '<fdopen>', mode 'w+b' at 0x04403578>
我假设0x04403578
是服务器内存中文件的地址。但mode 'w+b'
是什么意思?如果我必须支持任意文件类型,如何通过Python将该文件保存到磁盘?
答案 0 :(得分:1)
文件只是一个打开的文件对象,就像从open
获得的那样。 <fdopen>
表示已从文件描述符转换。 w+b
表示它在二进制模式下可以读写。
你可以把它写成普通文件,即
w = open('<filename>','w+b')
w.write(f.read())