簡體   English   中英

如何在上傳時重命名上傳圖片 - Flask / Python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM