首页 注册 登录
V2EX = way to explore V2EX 是一个关于分享和探索的地方
现在注册 已注册用户请 登录
Tornado Documentation http://www.v2ex.com/tornado/ Tornado on GitHub https://github.com/facebook/tornado/ Tornado Gists http://tornadogists.org/
V2EX Tornado

请教 tornado 文件上传问题

sylvos · 2017 年 1 月 5 日 · 10047 次点击
这是一个创建于 3292 天前的主题,其中的信息可能已经有所发展或是发生改变。
用下面的代码做文件上传,在自己电脑测试能够成功上传,到局域网其他电脑测试,显示 finished!了,但是没看到文件,请问前辈,是什么原因呢?该代码运行在 xp 系统上,上传文件夹已设置最高权限。
import tornado.ioloop
import tornado.web
import shutil
import os

class UploadFileHandler(tornado.web.RequestHandler):
def get(self):
self.write('''
<html>
<head><title>Upload File</title></head>
<body>
<form action='file' enctype="multipart/form-data" method='post'>
<input type='file' name='file'/><br/>
<input type='submit' value='submit'/>
</form>
</body>
</html>
''')

def post(self):
upload_path=os.path.join(os.path.dirname(__file__),'files') #文件的暂存路径
file_metas=self.request.files['file'] #提取表单中‘ name ’为‘ file ’的文件元数据
for meta in file_metas:
filename=meta['filename']
filepath=os.path.join(upload_path,filename)
with open(filepath,'wb') as up: #有些文件需要已二进制的形式存储,实际中可以更改
up.write(meta['body'])
self.write('finished!')

app=tornado.web.Application([
(r'/file',UploadFileHandler),
])

if __name__ == '__main__':
app.listen(3000)
tornado.ioloop.IOLoop.instance().start()
2 条回复 2017年01月05日 13:26:15 +08:00
kindjeff
1
kindjeff 2017 年 1 月 5 日 ❤️ 1
试一下这个代码能不能在 xp 上跑。
sylvos
2
sylvos
OP
2017 年 1 月 5 日
@kindjeff 可以呀,在我自己电脑都上传成功了的。
关于 · 帮助文档 · 自助推广系统 · 博客 · API · FAQ · Solana · 2622 人在线 最高记录 6679 · Select Language 创意工作者们的社区 World is powered by solitude VERSION: 3.9.8.5 · 25ms · UTC 02:55 · PVG 10:55 · LAX 18:55 · JFK 21:55
♥ Do have faith in what you're doing.

AltStyle によって変換されたページ (->オリジナル) /