【发布时间】:2013-10-06 04:01:23
【问题描述】:
以下代码使用 Bottle 框架成功上传图片文件。
upload = bottle.request.files.get("filPhoto01")
if upload is not None:
name, ext = os.path.splitext(upload.filename)
if ext not in ('.png','.jpg','.jpeg'):
return "File extension not allowed."
save_path = "/tmp/abc".format(category=category)
if not os.path.exists(save_path):
os.makedirs(save_path)
file_path = "{path}/{file}".format(path=save_path, file=upload.filename)
with open(file_path, 'w') as open_file:
open_file.write(upload.file.read())
但是,当我在上传后尝试手动打开此文件时,无法打开该文件。我可以看到正确大小的上传文件的图标(暗示整个图像已上传),但我无法在任何应用程序中查看它,如 MS Paint 等。
我也尝试在我的 Web 应用程序中引用该文件,但它也没有在那里呈现。可能有什么问题?
【问题讨论】:
-
不确定
"/tmp/abc".format(category=category)的作用——它是一个没有占位符的字符串常量,所以.format(...)调用对其没有影响;另外,我建议使用os.path.join而不是对/进行硬编码。 -
如果我因为您指出的问题而避免使用 file_path 变量,而是使用“open(upload.filename, 'w')”来测试上面的代码,它仍然不能解决问题...我知道这又是硬编码...但我想成功执行上传并查看文件
标签: python image file upload bottle