Skip to content

Commit be3ef21

Browse files
committed
flask
1 parent 722c170 commit be3ef21

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

flask/upload-without-save/main.py

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
from flask import Flask, request, redirect, make_response, render_template_string
2+
from PIL import Image
3+
import base64
4+
import pandas as pd
5+
import io
6+
7+
app = Flask(__name__)
8+
9+
@app.route("/")
10+
def index():
11+
return render_template_string('''
12+
<form action="getfile" method="POST" enctype="multipart/form-data">
13+
File: <input type="file" name="uploaded_file"><br>
14+
<input type="submit" value="Submit">
15+
</form>
16+
''')
17+
18+
19+
@app.route('/getfile', methods=['GET', 'POST'])
20+
def getfile():
21+
html = '[empty]'
22+
23+
if request.method == 'POST':
24+
25+
uploaded_file = request.files.get('uploaded_file')
26+
27+
filename = uploaded_file.filename
28+
print('filename:', filename)
29+
html = f'filename: {filename}<hr>'
30+
31+
if filename.lower().endswith( ('.png', '.jpg') ):
32+
img = Image.open(uploaded_file)
33+
#img.save('new_name.jpg')
34+
img.thumbnail((200,200))
35+
36+
file_object = io.BytesIO()
37+
img.save(file_object, 'JPEG')
38+
39+
data = file_object.getvalue() # get data directly
40+
# OR
41+
#file_object.seek(0) # move to the beginning of file after previous writing/reading
42+
#data = file_object.read() # read like from normal file
43+
44+
data = base64.b64encode(data).decode()
45+
html += f'<img src="data:image/jpg;base64, {data}">'
46+
47+
elif filename.lower().endswith('.csv'):
48+
df = pd.read_csv(uploaded_file)
49+
html += df.to_html()
50+
elif filename.lower().endswith( ('.txt', '.md') ):
51+
data = uploaded_file.read()
52+
data = data.decode()
53+
html += f'<pre>{data}</pre>'
54+
else:
55+
data = uploaded_file.read()
56+
html += f'<pre>{data}</pre>'
57+
58+
return html
59+
60+
if __name__ == '__main__':
61+
app.run(debug=True, use_reloader=False)

0 commit comments

Comments
 (0)