Estoy intentando subir un archivo CSV de 60 mb a mi aplicación. Pero cuando guardo el archivo en el servidor, solo contiene registros parciales (25 mb) del total del original. Este problema está ocurriendo solo al azar.
@fileupload.route('/loadfile',methods = ['POST']) def store_to_db(): for _file in request.files.getlist('filelist'): name, ext = FileUtil.get_filename_without_ext(_file.filename)#fetching file name and extension fd, path = tempfile.mkstemp(suffix=ext, prefix=name)#saving file as temp os.write(fd, _file.read()) try: file_upload_service.savefiletodb(path) except Exception as e: logger.info(str(e)) os.close(fd)Código del lado del cargador:
data= {} url_path = 'localhost:5000/loadfile' data['filelist']=open('employe.txt', 'rb') resp = requests.post(url=url_path, files=data)¿Alguna idea de por qué se comporta así?
Nota:
Cuando subo a través del cartero, no tengo ningún problema.
Si subo a través del código, a veces obtengo un archivo parcial.
objeto de archivo en el registro, cuando se carga a través del cartero
'empleado.TXT' ('texto/sin formato')>
objeto de archivo en el registro, cuando se carga a través del código
'empleado.TXT' ('Ninguno')>
intenta configurar app.config['MAX_CONTENT_LENGTH'] aquí
intente establecer encabezados como return Response(mimetype='text/plain') aquí hay una referencia para el mismo
prueba este tutorial
Si el problema es con el tamaño del archivo que excede el límite de tamaño del archivo, Flask generará una excepción RequestEntityTooLarge.
Si este es el caso, simplemente puede configurar la clave de configuración MAX_CONTENT_LENGTH . Por ejemplo,
from flask import Flask, Request app = Flask(__name__) app.config['MAX_CONTENT_LENGTH'] = 20 * 1024 * 1024El código anterior establecerá el límite de carga de archivos en 20 megabytes. Si el usuario intenta cargar un archivo más grande que el límite establecido (en este caso, 20 MB), Flask generará una excepción RequestEntityTooLarge.
Y luego, si es necesario, las extensiones de archivo permitidas también se pueden especificar mediante,
ALLOWED_EXTENSIONS = {'txt', 'docx','pdf', 'png', 'jpg', 'jpeg', 'gif'}Para obtener más ayuda, consulte Flask Docs para cargar archivos.