[英]How to rename upload image while uploading - Flask / Python
我正在建立一個網站,人們應該可以在其中添加帶有圖片的小內容。 所有圖片 go 到同一個目錄。 所以我需要重命名圖片,這樣就不會有任何覆蓋或沖突。
當我向網站添加添加時,它會自動增加 add_id。 我想使用這個 add_id 作為圖片名稱。
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/aufgeben', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
titel = request.form['titel']
beschreibung = request.form['beschreibung']
kategorie = request.form['kategorie']
# check if the post request has the file part
if 'file' not in request.files:
flash('No file part')
return redirect(request.url)
file = request.files['file']
# if user does not select file, browser also
# submit a empty part without filename
if file.filename == '':
flash('No selected file')
return redirect(request.url)
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
# Anzeigeninhalt in DB eintragen
cursor = g.con.cursor()
cursor.execute('insert into anzeigen (titel, beschreibung, kategorie) values (%s, %s, %s)',
(titel, beschreibung, kategorie))
g.con.commit()
cursor.close()
flash("Anzeige aufgegeben.")
return render_template('aufgeben.html',)
感謝所有幫助。 也許有人對如何解決這個問題有更好的想法?
我知道現在回復可能為時已晚,但也許其他人會尋找答案。 正如 Nishant Nawarkhede 回復的那樣,您可以使用時間戳來重命名上傳的文件。 由於我遇到了同樣的需求,所以我使用以下代碼在上傳時重命名文件:
NOW = datetime.datetime.now()
new_filename = os.path.join(UPLOAD_FOLDER, file.filename.rsplit('.',1)[0] + '_' + NOW.strftime("%d_%m_%Y_%H_%M_%S") + '.' + file.filename.rsplit('.',1)[1])
在此之后,您的文件應類似於以下格式:
'path_to_file/filename_datetime.jpg'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.