![](/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.