我有一个Tornado Web应用程序,我想要读取上传的文件。这是从客户端收到的,我尝试这样做:
def post(self):
file = self.request.files['images'][0]
dataOpen = open(file['filename'],'r');
dataRead = dataOpen.read()
但它提供了IOError
:
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\tornado\web.py", line 1332, in _execute
result = method(*self.path_args, **self.path_kwargs)
File "C:\Users\rsaxdsxc\workspace\pi\src\Server.py", line 4100, in post
dataOpen = open(file['filename'],'r');
IOError: [Errno 2] No such file or directory: u'000c02c55024aeaa96e6c79bfa2de3926dbd3767.jpg'
为什么它无法看到该文件?
答案 0 :(得分:1)
file['filename']
的值只是上传文件的名称,它不是文件系统中的路径。文件内容位于file['body']
。如果需要,可以使用StringIO模块模拟文件接口,或者直接遍历file['body']
。
您可以使用的非常好的示例是here
因此,您的帖子请求处理程序可能如下所示:
def post(self):
file = self.request.files['images'][0]
dataRead = file['body']
store_file_somewhere(file['filename'], dataRead)