Added functional file upload form, as well as a /files/<oid> view to get files
This commit is contained in:
parent
b0fe8621c8
commit
34eda46c87
3 changed files with 18 additions and 4 deletions
|
@ -127,6 +127,8 @@ def user_settings():
|
|||
else:
|
||||
return redirect(url_for('login'))
|
||||
elif request.method == "POST":
|
||||
print(request.files)
|
||||
print(request.form)
|
||||
if 'username' not in session.keys():
|
||||
return redirect(url_for('login'))
|
||||
profile = {
|
||||
|
@ -134,6 +136,9 @@ def user_settings():
|
|||
'gender': request.form['gender'],
|
||||
'location': request.form['location']
|
||||
}
|
||||
if 'profile-pic' in request.files.keys():
|
||||
profile_pic = files.upload_file(request.files['profile-pic'])
|
||||
profile['profile-pic'] = profile_pic
|
||||
accounts.set_theme(session['username'].lower(), request.form['theme'])
|
||||
username = session['username']
|
||||
accounts.update_profile(username, profile)
|
||||
|
@ -220,10 +225,11 @@ def unlike_post(post_id):
|
|||
@app.route("/files/<oid>", methods=['GET'])
|
||||
def get_file(oid):
|
||||
fl = files.get_file(oid)
|
||||
if not fl: return abort(404)
|
||||
if not fl: return "File not found"
|
||||
response = make_response(fl.read())
|
||||
response.mimetype = fl.content_type
|
||||
return response
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(host="127.0.0.1", debug=True)
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
from pymongo import MongoClient
|
||||
from bson.objectid import ObjectId
|
||||
import gridfs
|
||||
from gridfs.errors import NoFile
|
||||
from werkzeug.utils import secure_filename
|
||||
import gridfs
|
||||
|
||||
client = MongoClient()
|
||||
db = client.tweeder
|
||||
|
@ -11,7 +12,12 @@ accounts_db = db.accounts
|
|||
|
||||
def get_file(oid):
|
||||
try:
|
||||
files_db.get(ObjectId(oid))
|
||||
return files_db.get(ObjectId(oid))
|
||||
except NoFile:
|
||||
return False
|
||||
|
||||
|
||||
def upload_file(file_to_upload):
|
||||
filename = secure_filename(file_to_upload.filename)
|
||||
obj = files_db.put(file_to_upload, content_type=file_to_upload.content_type, filename=filename)
|
||||
return obj
|
||||
|
|
|
@ -3,8 +3,10 @@
|
|||
{% block content %}
|
||||
<div class="container">
|
||||
<h1>Settings for {{ logged_in }}</h1><hr />
|
||||
<form method="POST" action="/settings" class="col-lg-6">
|
||||
<form method="POST" action="/settings" class="col-lg-6" enctype="multipart/form-data">
|
||||
<div class="form-group row">
|
||||
<h2>Profile Picture</h2>
|
||||
<input type="file" name="profile-pic" size="40">
|
||||
<h2>Profile Fields</h2>
|
||||
|
||||
<div class="input-group mb-3">
|
||||
|
|
Loading…
Add table
Reference in a new issue