-2

私が取り組んでいる Django プロジェクトで、画像のアップロードを処理する次のコードがあります。

def upload_handler(source):
    fd, filepath = tempfile.mkstemp(prefix=source.name, dir=MEDIA_ROOT)
    with open(filepath, 'wb') as dest:
        shutil.copyfileobj(source, dest)
        return MEDIA_URL + basename(dest.name)

アップロード部分はすべて正常に機能していますが、mkstemp は、拡張子の後に 6 つのランダムなサフィックスを追加して画像を保存しています (例: test.png -> test.pngbFVeyh)。2 番目のコード行で接尾辞を渡しても、それが追加されますが、さらに 6 つのランダムな文字が追加されます。起こっている他の奇妙なことは、アップロードフォルダー(私の場合はMEDIA_ROOT)で、写真と同じ名前の別の空のプレーンテキストドキュメントタイプファイル(例:test.pngbFVeyh)と一緒に作成されることです。mkstemp に関するドキュメントを読みましたが、代替ソリューションが見つかりませんでした。

4

2 に答える 2

-1

の目的であるため、名前はランダムに生成されtempfile.mkstempます。その名前のファイルが作成されるのは、それが機能するためtempfile.mkstempです。それも開かれ、fd無視したファイル記述子が返されます。の使用方法を理解していないようで、tempfile.mkstempおそらく代わりに別のものを使用する必要があります。

于 2013-03-18T11:48:19.600 に答える