am_dot_com

SW 2023-04-26

Apr 26th, 2023 (edited)
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. <!-- upload_example.html -->
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>File Upload Example</title>
  7. </head>
  8. <body>
  9. <form action="/upload"
  10. method="POST"
  11. enctype="multipart/form-data"
  12. >
  13. <label for="idName">Your name:</label>
  14. <input type="text"
  15. id="idName"
  16. name="nameUser"
  17. placeholder="your name"
  18. value="John Smith"
  19. ><!-- nome -->
  20. <br>
  21.  
  22. <label for="idFile">Your text:</label>
  23. <input type="file"
  24. id="idFile"
  25. name="nameFile"
  26. ><!-- seleção e envio do ficheiro -->
  27. <br>
  28.  
  29. <input type="submit"
  30. value="send name + file"
  31. ><!-- confirmar as respostas -->
  32. </form>
  33. </body>
  34. </html>
  35.  
  36. *********************
  37.  
  38. # app.py
  39. import os
  40.  
  41. from flask import Flask,\
  42. request,\
  43. render_template
  44.  
  45. from werkzeug.utils import \
  46. secure_filename
  47.  
  48. NAME_USER = "nameUser"
  49. NAME_FILE = "nameFile"
  50.  
  51. app = Flask(__name__)
  52. app.config['UPLOAD_FOLDER']="ups"
  53.  
  54. @app.route("/", methods=['GET', 'POST'])
  55. def root():
  56. return \
  57. render_template(
  58. "upload_example.html"
  59. )
  60. # def root
  61.  
  62. @app.route("/upload", methods=['POST'])
  63. def upload():
  64. nameUser:str = request.form[NAME_USER]
  65.  
  66. # NOT LIKE THIS
  67. #nameFile:str = request.form[NAME_FILE]
  68. #return f"got {nameUser} + got {nameFile}"
  69.  
  70. theFile = request.files[NAME_FILE]
  71. if(theFile):
  72. src_fname = theFile.filename
  73. sec_fname = secure_filename(src_fname)
  74. if(sec_fname!=""):
  75. # conseguimos obter um nome "seguro"
  76. dst_fname = \
  77. os.path.join(
  78. app.config['UPLOAD_FOLDER'],
  79. sec_fname
  80. )
  81.  
  82. try:
  83. theFile.save(
  84. dst=dst_fname
  85. )
  86.  
  87. msgOK:str =\
  88. f"Name received: {nameUser}<br>"+\
  89. f"Your file {src_fname} was saved OK @"+\
  90. f"{dst_fname}"
  91.  
  92. return msgOK
  93.  
  94. except Exception as e:
  95. msgOK: str = \
  96. f"Your file {src_fname} was NOT saved server-side"
  97. return msgOK
  98.  
  99. """
  100. f"{app.config['UPLOAD_FOLDER']}/{sec_fname}"
  101. ups/1.txt
  102. ups/batatas.txt
  103. ups/sl2.txt
  104. """
  105. else:
  106. return "Could not secure filename"
  107. # if-else
  108. else:
  109. return "Could not receive the file"+\
  110. f"<br>but received nameUser={nameUser}"
  111. # if-else
  112. # def upload
  113.  
  114. app.run(
  115. # host # "127.0.0.1", by default
  116. # port # 5000, by default
  117. debug=True
  118. )
Advertisement
Add Comment
Please, Sign In to add comment