【问题标题】:http file upload to diskhttp文件上传到磁盘
【发布时间】:2016-02-20 08:18:46
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python http file-upload cgi


    【解决方案1】:

    文件只是一个打开的文件对象,就像你从open 得到的一样。 &lt;fdopen&gt; 表示它是从文件描述符转换而来的。 w+b 表示以二进制方式开放读写。

    您可以像普通文件一样编写它,即

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

    【讨论】:

    • 它有效,我没想到这么容易。但是,您能解释一下w+b 的含义吗?我理解w 表示写入,b 表示二进制,但它不仅仅是wb
    • w+ 表示读取和写入,而w 不允许读取。您可以参考docs 了解有关模式字符串的更多信息。
    猜你喜欢
    • 2013-12-26
    • 2018-09-14
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 2019-12-27
    • 1970-01-01
    相关资源
    最近更新 更多