Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!-- upload_interface.html -->
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Upload file to local FS</title>
- </head>
- <body>
- <form action="/upload"
- method="post"
- enctype="multipart/form-data"
- >
- <label for="idFile">Pick the file to upload: </label>
- <input type="file"
- name="nameFile"
- id="idFile"
- ><!-- para seleção do ficheiro -->
- <br>
- <input type="submit"
- value="confirm file"
- ><!-- sinalizar ficheiro escolhido, iniciar upload -->
- </form>
- </body>
- </html>
- *****
- # application.py
- import os
- from flask import Flask,\
- request, \
- render_template
- from werkzeug.utils import \
- secure_filename
- UPLOAD_ELEMENT = "nameFiles" # plural nesta v2
- application = Flask(__name__)
- application.config['UPLOAD_FOLDER']="dls"
- @application.route("/", methods=['GET', 'POST'])
- def root():
- return render_template("upload_interface.html")
- # def root
- @application.route("/upload", methods=['POST'])
- def process_uploads():
- ret = "<ul>"
- upload_results = upload()
- if(
- upload_results!=False \
- and \
- type(upload_results)==dict \
- ):
- for src_fname in upload_results.keys():
- bOK = upload_results[src_fname]!=False
- if(bOK):
- dst:str=upload_results[src_fname]
- fb:str=f"File {src_fname} uploaded OK to {dst}"
- else:
- fb: str = f"Failed to upload file {src_fname}"
- # if-else
- ret+=f"<li>{fb}</li>"
- #for
- ret+="</ul>"
- return ret
- else:
- return upload_results # será um frase, neste caso
- # if-else
- # def process_uploads
- def upload():
- ret:dict = dict()
- # theFile = request.files[UPLOAD_ELEMENT] # single file
- theFiles = request.files.getlist(UPLOAD_ELEMENT)
- if(theFiles):
- for oFile in theFiles:
- src_fname = oFile.filename
- sec_fname = secure_filename(src_fname)
- prefix: str = os.path.join(
- application.root_path,
- application.config['UPLOAD_FOLDER']
- )
- if(sec_fname):
- dst_name = os.path.join(
- prefix,
- sec_fname
- )
- try:
- oFile.save(
- dst=dst_name
- )
- ret[src_fname]=dst_name
- except Exception as e:
- ret[src_fname]=False
- # try-except
- # if got secure file name
- # for every uploaded file
- else:
- return f"Files not received."
- # if-else
- return ret
- # def upload
- if(__name__=='__main__'):
- application.run(
- #host
- #port
- debug=True
- )
Advertisement
Add Comment
Please, Sign In to add comment