es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener flujo de archivo sin cargarlo en memoria.

¿Cómo es posible obtener el archivo que el usuario está subiendo sin cargarlo en memoria?
Esta línea hace que la memoria aumente var request = await httpContent.ReadAsMultipartAsync();

El cliente solo puede subir un archivo, ¿hay alguna forma de obtener la secuencia sin pasar por ReadAsMultipartAsync?

var request = await httpContent.ReadAsMultipartAsync();
var content = request.Contents.FirstOrDefault();
var stream = await content.ReadAsStreamAsync();

Solo quiero la secuencia del contenido. Si obtengo la secuencia de esta manera:

var stream = await httpContent.ReadAsStreamAsync();

Luego da un archivo que se ve así:

—————————–224143682423505141523038143258
Content-Disposition: form-data; name=”file”; filename=”test.txt”
Content-Type: text/plain

mi contenido tonto

—————————–224143682423505141523038143258–

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener el archivo que el usuario está cargando sin cargarlo en memoria, se puede utilizar el método ReadAsStreamAsync en el contenido de la solicitud. Para hacer esto, primero debe leer la solicitud como multipart de manera asíncrona para obtener el contenido de la solicitud. Luego, puede obtener el contenido que necesita y llamar al método ReadAsStreamAsync para obtener el flujo sin cargarlo en memoria. De esta manera, se puede cargar eficientemente un archivo grande sin quedarse sin memoria.

Comments are closed.