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 ペイントなどのアプリケーションでは表示できません。

また、Web アプリケーションでファイルを参照しようとしましたが、そこでもレンダリングされません。何が間違っている可能性がありますか?

4

1 に答える 1

1

推測ですが、Windows を使用しているように聞こえるので、バイナリ モードでファイルを書きたいと思うでしょう。

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

(また、Pythonのバージョンについては言及していませんでしたが、参考までにPython 3では、Linuxでもバイナリモードを使用する必要があります。)

于 2013-10-01T14:19:09.663 に答える