1

以下代码使用 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 应用程序中引用该文件,但它也不在那里呈现。什么可能是错的?

4

1 回答 1

1

只是一个猜测,但由于听起来您在 Windows 上,您需要以二进制模式编写文件:

with open(file_path, 'wb') as open_file:

(另外,你没有提到你的 Python 版本,但在 Python 3 中仅供参考,即使在 Linux 上你也需要使用二进制模式。)

于 2013-10-01T14:19:09.663 回答