![](/img/trans.png)
[英]Running a mod_wsgi (Flask) app and a non mod_wsgi app on same Apache server
[英]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 777
和chown -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.