簡體   English   中英

Flask,Apache,mod_wsgi:無法在服務器端保存文件

[英]Flask, Apache, mod_wsgi: unable to save file on server side

從客戶端,我通過form enctype=multipart/form-data通過發布發送圖像,在服務器端,我將其保存到目錄中。 所有這些都可以在我的計算機上本地運行,並直接通過python app.py運行flask。

這是設置文件保存的參考:

http://flask.pocoo.org/docs/patterns/fileuploads/

在實際的生產服務器上,我使用Apache和mod_wsgi來運行它,我根據此網站對其進行了設置:

http://flask.pocoo.org/docs/deploying/mod_wsgi/

對於目錄權限,我嘗試使用chown -R 777chown -R www-data:www-data ,其中用戶的相關Apache代碼如下所示: WSGIDaemonProcess app user=www-data group=www-data threads=5

但是,畢竟,我仍然無法保存該文件。 我只是在嘗試保存文件時返回500 HTTP錯誤。

以下是相關的Flask代碼:

UPLOAD_FOLDER = '/images/'
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

@app.route('/upload_ocr_images', methods=['GET', 'POST'])
def upload_images():
    if request.method == 'POST':
        files = request.files.getlist("images[]")
        for file in files:
            if allowed_file(file.filename):
                filename = secure_filename(file.filename)
                file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
    return redirect(url_for('home'))

在這一點上,我想知道是否需要在Apache方面進行設置。

您使用/uploads作為路徑。 這意味着您要嘗試在文件系統的根目錄上載到名為/uploads的目錄。

這通常是錯誤的,通常是錯誤。

如果您 flask應用程序文件結構擁有了uploads文件夾,則應使用app.root_path創建路徑,該路徑包含絕對應用程序路徑。

就像是

file.save(os.path.join(app.root_path, '/uploads', filename))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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