Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!-- upload_example.html -->
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>File Upload Example</title>
- </head>
- <body>
- <form action="/upload"
- method="POST"
- enctype="multipart/form-data"
- >
- <label for="idName">Your name:</label>
- <input type="text"
- id="idName"
- name="nameUser"
- placeholder="your name"
- value="John Smith"
- ><!-- nome -->
- <br>
- <label for="idFile">Your text:</label>
- <input type="file"
- id="idFile"
- name="nameFile"
- ><!-- seleção e envio do ficheiro -->
- <br>
- <input type="submit"
- value="send name + file"
- ><!-- confirmar as respostas -->
- </form>
- </body>
- </html>
- *********************
- # app.py
- import os
- from flask import Flask,\
- request,\
- render_template
- from werkzeug.utils import \
- secure_filename
- NAME_USER = "nameUser"
- NAME_FILE = "nameFile"
- app = Flask(__name__)
- app.config['UPLOAD_FOLDER']="ups"
- @app.route("/", methods=['GET', 'POST'])
- def root():
- return \
- render_template(
- "upload_example.html"
- )
- # def root
- @app.route("/upload", methods=['POST'])
- def upload():
- nameUser:str = request.form[NAME_USER]
- # NOT LIKE THIS
- #nameFile:str = request.form[NAME_FILE]
- #return f"got {nameUser} + got {nameFile}"
- theFile = request.files[NAME_FILE]
- if(theFile):
- src_fname = theFile.filename
- sec_fname = secure_filename(src_fname)
- if(sec_fname!=""):
- # conseguimos obter um nome "seguro"
- dst_fname = \
- os.path.join(
- app.config['UPLOAD_FOLDER'],
- sec_fname
- )
- try:
- theFile.save(
- dst=dst_fname
- )
- msgOK:str =\
- f"Name received: {nameUser}<br>"+\
- f"Your file {src_fname} was saved OK @"+\
- f"{dst_fname}"
- return msgOK
- except Exception as e:
- msgOK: str = \
- f"Your file {src_fname} was NOT saved server-side"
- return msgOK
- """
- f"{app.config['UPLOAD_FOLDER']}/{sec_fname}"
- ups/1.txt
- ups/batatas.txt
- ups/sl2.txt
- """
- else:
- return "Could not secure filename"
- # if-else
- else:
- return "Could not receive the file"+\
- f"<br>but received nameUser={nameUser}"
- # if-else
- # def upload
- app.run(
- # host # "127.0.0.1", by default
- # port # 5000, by default
- debug=True
- )
Advertisement
Add Comment
Please, Sign In to add comment