使用Django和AJAX上传文件时出现无效模式:wb

0 投票
1 回答
3033 浏览
提问于 2025-04-16 15:32

我正在尝试在Django中使用一个ajax文件上传表单,但在处理文件时遇到了问题。具体来说,

with BufferedWriter( FileIO( filename, "wb" ) ) as dest:

结果是

ValueError: invalid mode: wb

我在本地使用的是Python 2.6和Django 1.3,操作系统是OSX 10.6.7。我尝试对我想要操作的目录使用chmod +X命令。你知道我可能遗漏了什么吗?谢谢。

1 个回答

1

http://docs.python.org/release/2.6.6/library/io.html#raw-file-i-o

FileIO代表一个包含字节数据的文件。它实现了RawIOBase接口(因此也实现了IOBase接口)。

打开文件时,可以选择的模式有'r'(读取,默认)、'w'(写入)或'a'(追加)。如果你用写入或追加的方式打开一个文件,而这个文件还不存在,那么系统会自动创建这个文件;如果是用写入的方式打开文件,文件内容会被清空。想要同时进行读取和写入,可以在模式后面加一个'+'。

这里提到的“模式”是你想要设置的,比如使用“rb”,但在文档中这并不是一个有效的模式。不管怎样,既然FileIO是用来从文件中读取原始数据的,这似乎说明它默认就是以二进制模式运行的,所以我觉得“b”这个字母其实是多余的。

撰写回答