0
をインクリメントしません:Pythonのフラスコは、サーバー上の画像の名前を変更、変数は、私は、画像を要求するために、次のコードを使用し
@app.route("/user/zimmer-einstellen/upload", methods=['GET', 'POST'])
@login_required
@check_confirmed
def for_image_upload():
if request.method == "POST":
MYDIR = os.path.dirname(__file__)
i = 1
for key, file in request.files.iteritems():
if file:
filename = secure_filename(str(current_user.id) + "-bild-"+str(i)+".jpg")
print filename
file.save(os.path.join(MYDIR + "/" + app.config['UPLOAD_FOLDER'], filename))
i = i + 1
return "images"
return redirect(url_for('index'))
は私がある、私が要求するすべての画像の名前を変更し、最後にカウンタを追加しますここにi
。私は彼らがこのように名前を付ける必要があります3つの画像取得のであれば:
1-bild-1.jpg
1-bild-2.jpg
1-bild-3.jpg
を最後に一つだけのファイルが保存されますので、問題は、i
がここにインクリメントし、すべてのファイルを上書きしないこと(最後の1)です。私は別々の新しいpythonファイルでコードを試して、それは働いたので、おそらく要求と何か関係があるはずですか?
また、ファイルの名前を変更せずに元の名前を保持すると、すべて正常に動作するので、複数のファイルが正しく要求され、目的の場所に保存されます。
すべてのファイルが1つの要求で処理されていますか?たぶん、複数のリクエストがあり、それぞれには1つのファイルしかありません。この場合、毎回カウントを1から再起動し、以前のイメージを上書きしてしまいます。リクエストの見た目についてさらに詳しく説明できますか?たとえば、[Flaskデバッグツールバー](https://pypi.python.org/pypi/Flask-DebugToolbar)を使用して、何が起きているかをより詳細に知ることができます。 – Jan
'print key'の出力は何ですか?この出力は、要求を確認するのに役立ちます。キーが正しい場合は、それを使って写真に名前を付けることができます。 – xiaoyi