am_dot_com

CN 2023-04-21

Apr 21st, 2023
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. <!-- upload_interface.html -->
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>Upload interface</title>
  7. </head>
  8. <body>
  9. <h1>Single File Uploader</h1>
  10. <form
  11. action="/upload"
  12. method="POST"
  13. enctype="multipart/form-data"
  14. >
  15. <label for="idFile">
  16. Pick file to upload:
  17. </label>
  18. <input type="file"
  19. id="idFile"
  20. name="nameFile">
  21. <br>
  22. <input type="submit"
  23. value="confirm and upload file"
  24. >
  25. </form>
  26. </body>
  27. </html>
  28.  
  29. *******************
  30.  
  31. # app.py
  32.  
  33. from flask import Flask, \
  34. request,\
  35. render_template
  36.  
  37. from werkzeug.utils import \
  38. secure_filename
  39.  
  40. NAME_FILE = "nameFile"
  41.  
  42. app = Flask(__name__)
  43. app.config['UPLOAD_FOLDER'] = "dls"
  44.  
  45. @app.route("/", methods=['GET', 'POST'])
  46. def root():
  47. return \
  48. render_template("upload_interface.html")
  49. # def root
  50.  
  51. @app.route("/upload", methods=['POST'])
  52. def upload():
  53. #request.form[NAME_FILE] # not the way
  54. theFile = request.files[NAME_FILE]
  55. if(theFile):
  56. src_fname = theFile.filename
  57. sfname = secure_filename(src_fname)
  58. if(sfname!=""):
  59. # where to save
  60. dst_fname =\
  61. f"{app.config['UPLOAD_FOLDER']}/{sfname}"
  62.  
  63. try:
  64. theFile.save(
  65. dst_fname
  66. )
  67. return \
  68. f"File saved OK @ {dst_fname}"
  69.  
  70. except Exception as e:
  71. return \
  72. f"Could NOT save {dst_fname}"
  73. # if
  74. else:
  75. return f"Could not secure file name for {src_fname}"
  76. # if-else
  77. else:
  78. return f"Could not access the uploaded file"
  79. # if-else
  80. # def upload
  81.  
  82. if (__name__=='__main__'):
  83. app.run(debug=True)
Advertisement
Add Comment
Please, Sign In to add comment