Manejo o acceso de archivo en el RequestHandler subido en la solicitud POST.
A través de una solicitud POST de Postman estoy enviando datos de formulario multiparte con parámetros junto con archivos adjuntos. Ahora, en el backend, estoy utilizando Tornado para manejar estas solicitudes, no tengo problemas para acceder a los parámetros usando RequestHandler.get_argument(“str”) (1er hipervínculo para la captura de pantalla de Postman) sin embargo, estoy teniendo dificultades para acceder / leer el archivo adjunto que llega a través de la misma solicitud. Según la documentación de Tornado, estaba usando RequestHandler.get_body_argument y .get_body_arguments pero ambos parecen no funcionar. No estoy seguro si me falta algo aquí en mi backend. ¿Alguien puede ayudar aquí?
Fragmento de código en el backend:
dic = {}
dic[‘operation’] = RequestHandler.get_argument(self, name=”operation”). << este es el parámetro en la solicitud POST de Postman y puedo obtener el valor de la clave “operation” sin ningún problema
Captura de pantalla de Postman mostrando que el acceso a los parámetros dentro de la misma solicitud no tiene problemas:
Imagen 1: https://i.stack.imgur.com/pKsqd.png
Captura de pantalla de Postman mostrando la solicitud POST con datos de formulario y archivo:
Imagen 2: https://i.stack.imgur.com/mUk6Z.png
Pero acceder al archivo del formulario en el backend usando Tornado como se muestra en la captura de pantalla anterior (2º hipervínculo a la captura de pantalla) se ha convertido en una lucha.
davy.ai
Para acceder a los archivos adjuntos en una solicitud POST desde Postman usando Tornado, se debe utilizar el método
RequestHandler.get_file_arguments
en lugar deRequestHandler.get_body_argument
oRequestHandler.get_body_arguments
.Aquí hay un ejemplo de cómo usarlo en el backend:
self.request.files
devuelve un diccionario donde las llaves son los nombres de campo de los archivos adjuntos y los valores son una lista de archivos para ese campo. Cada archivo es un diccionario que contiene propiedades comofilename
,content_type
ybody
.Al iterar sobre
file_dict
, se puede acceder a cada archivo y sus propiedades. En el ejemplo anterior, simplemente estamos imprimiendo el nombre de archivo y el cuerpo de cada archivo adjunto.El uso del método
self.get_argument
todavía funciona normalmente para acceder a los parámetros en la misma solicitud POST desde Postman.