从 HTML 模板在龙卷风中上传带有分隔行的文件
Uploading file with separated lines in tornado from an HTML template
我正在尝试使用 tornado 创建一个从网页 (RequestHandler + HTML) 上传文件的功能。
我找到了使用这段代码的方法。但问题是文件的全部内容写在一行中,这是正常的,因为函数 self.request.files 将文件的内容保存在字典中。
python代码:
def post(self):
myfile = self.request.files['file1'][0]
print("myfile is", myfile)
fname = myfile['filename']
upload_file = open("./some_files/%s" % fname, 'w')
upload_file.write(str(myfile['body']))
html代码:
<form enctype="multipart/form-data" action="/build" method="post">
File: <input type="file" name="file1" />
<br />
<br />
<input type="submit" value="upload" />
</form>
那么如何分隔上传文件的行呢?
问题是因为文件的内容是二进制格式,我用str()
将它转换成字符串。正确的方法是像这样使用 decode()
def post(self):
myfile = self.request.files['file1'][0]
fname = myfile['filename']
file_content = myfile['body'].decode("utf-8")
print(file_content)
with open("./some_files/%s" % fname, 'w') as upload_file:
upload_file.write(file_content)
我正在尝试使用 tornado 创建一个从网页 (RequestHandler + HTML) 上传文件的功能。
我找到了使用这段代码的方法。但问题是文件的全部内容写在一行中,这是正常的,因为函数 self.request.files 将文件的内容保存在字典中。
python代码:
def post(self):
myfile = self.request.files['file1'][0]
print("myfile is", myfile)
fname = myfile['filename']
upload_file = open("./some_files/%s" % fname, 'w')
upload_file.write(str(myfile['body']))
html代码:
<form enctype="multipart/form-data" action="/build" method="post">
File: <input type="file" name="file1" />
<br />
<br />
<input type="submit" value="upload" />
</form>
那么如何分隔上传文件的行呢?
问题是因为文件的内容是二进制格式,我用str()
将它转换成字符串。正确的方法是像这样使用 decode()
def post(self):
myfile = self.request.files['file1'][0]
fname = myfile['filename']
file_content = myfile['body'].decode("utf-8")
print(file_content)
with open("./some_files/%s" % fname, 'w') as upload_file:
upload_file.write(file_content)