使用 web.py 上传 Excel
Upload Excel using web.py
我通过稍微修改 documentation
中的示例尝试了以下代码
class Upload():
def POST(self):
web.header('enctype','multipart/form-data')
print strftime("%Y-%m-%d %H:%M:%S", gmtime())
x = web.input(file={})
filedir = '/DiginUploads' # change this to the directory you want to store the file in.
if 'file' in x: # to check if the file-object is created
filepath=x.file.filename.replace('\','/') # replaces the windows-style slashes with linux ones.
filename=filepath.split('/')[-1] # splits the and chooses the last part (the filename with extension)
fout = open(filedir +'/'+ filename,'w') # creates the file where the uploaded file should be stored
fout.write(x.file.file.read()) # writes the uploaded file to the newly created file.
fout.close() # closes the file, upload complete.
但这仅适用于 csv 和 txt 文档。对于 Excel/pdf 等文件已创建但无法打开(已损坏)。我应该怎么做才能处理这种情况?
我看到了this但是打印的内容与我无关
打开文件时需要使用wb
(二进制)模式:
fout = open(filedir +'/'+ filename, 'wb')
我通过稍微修改 documentation
中的示例尝试了以下代码class Upload():
def POST(self):
web.header('enctype','multipart/form-data')
print strftime("%Y-%m-%d %H:%M:%S", gmtime())
x = web.input(file={})
filedir = '/DiginUploads' # change this to the directory you want to store the file in.
if 'file' in x: # to check if the file-object is created
filepath=x.file.filename.replace('\','/') # replaces the windows-style slashes with linux ones.
filename=filepath.split('/')[-1] # splits the and chooses the last part (the filename with extension)
fout = open(filedir +'/'+ filename,'w') # creates the file where the uploaded file should be stored
fout.write(x.file.file.read()) # writes the uploaded file to the newly created file.
fout.close() # closes the file, upload complete.
但这仅适用于 csv 和 txt 文档。对于 Excel/pdf 等文件已创建但无法打开(已损坏)。我应该怎么做才能处理这种情况?
我看到了this但是打印的内容与我无关
打开文件时需要使用wb
(二进制)模式:
fout = open(filedir +'/'+ filename, 'wb')