Python y Flask: Subir archivos al servidor
Si necesitas información sobre Hosting puedes visitar codigohosting.com
Formulario de Subida.
Aprende más sobre el renderizado de plantillas con Flask: https://www.pythondiario.com/2018/10/renderizar-plantillas-en-flask.html
<form action="/upload" method="POST" enctype="multipart/form-data">
<input type="file" name="archivo">
<input type="submit">
</form>
Escribiendo el Script
# Importamos todo lo necesario
import os
from flask import Flask, render_template, request
from werkzeug import secure_filename
# instancia del objeto Flask
app = Flask(__name__)
# Carpeta de subida
app.config['UPLOAD_FOLDER'] = './Archivos PDF'
@app.route("/")
def upload_file():
# renderiamos la plantilla "formulario.html"
return render_template('formulario.html')
@app.route("/upload", methods=['POST'])
def uploader():
if request.method == 'POST':
# obtenemos el archivo del input "archivo"
f = request.files['archivo']
filename = secure_filename(f.filename)
# Guardamos el archivo en el directorio "Archivos PDF"
f.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
# Retornamos una respuesta satisfactoria
return "<h1>Archivo subido exitosamente</h1>"
if __name__ == '__main__':
# Iniciamos la aplicación
app.run(debug=True)
files
en el objeto de solicitud request
.- Subir Archivos
- templates
- formulario.html
- Subir_Archivos.py
- Archivos PDF
- templates
-
pase casi 1 semana buscando esta informacionn, don luis usted es un crack y desde ya me hare fiel seguidor de tu pagina y le dare click en los anuncios para que te genere algo de ganancia ya q me queda dificil donarte de nuevo mil gracias
-
¡Gracias, Me sirvió bastante! 😀
-
Alguna forma de solucionarlo? Salio este error:
flask.debughelpers.DebugFilesKeyError: You tried to access the file "archivo" in the request.files dictionary but it does not exist. The mimetype for the request is "application/x-www-form-urlencoded" instead of "multipart/form-data" which means that no file contents were transmitted. To fix this error you should provide enctype="multipart/form-data" in your form.The browser instead transmitted some file names. This was submitted: "archivo.mp3"
-
no me queda claro como hizo la parte de consola y como puso la ruta localhost:5000
-
hola, el programa funciona bien con el servidor localhost, pero cuando pruebo en un servidor (hosting unix) no lee el archivo, que instrucciones debo incluir para que pueda leer el archivo que esta en el disco c:
-
el programa funciona bien con el servidor localhost, pero cuando pruebo en un servidor (hosting unix) no lee el archivo, que instrucciones debo incluir para que pueda leer el archivo que esta en el disco c:
-
Hola, son solo para archivos pdf o puedes subir cualquier archivo, ejemplo un archivo xml o json?
-
Todo tipo de archivo
-
Deja una respuesta
Genial, justo lo que estaba buscando, una consulta. Se podria guardar el nombre con el que el archivo va a ser guardado en una lista o algo por el estilo?