Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

167
Views
¿Cómo consumir un archivo con un tipo de contenido de mensaje/rfc822 en mi API REST en un MultipartFormData?

En mi aplicación Vue tengo esta entrada de archivo :

 <input type="file" multiple @input="handleFileInput" />

Los archivos seleccionados se pasan a mi este método de carga:

 public async uploadFiles(file: File) { [...] const formData = new FormData(); formData.append('fileName', file.name); formData.append('file', file); [...] await axios.post('my-upload-url', formData); }

El registro js antes de enviarlo:

ingrese la descripción de la imagen aquí

El registro de red después de enviarlo:

ingrese la descripción de la imagen aquí

Mi controlador Resteasy responde:

 @POST @Transactional @Consumes(MediaType.MULTIPART_FORM_DATA) public Response uploadMultipartData(@MultipartForm @Valid MyDto dto) { // dto.file -> my file }

El DTO:

 public class MyDto { @NotNull @FormParam("file") @PartType(MediaType.APPLICATION_OCTET_STREAM) public InputStream file; }

Al transferir otros tipos de archivos (pdf, png, jpg, mp3, ...), el archivo se encuentra en el InputStream del DTO como se esperaba. Sin embargo, cuando el archivo es un archivo .eml, InputStream es nulo.

Actualización: al cambiar el nombre del archivo de text.eml a test.txt, la carga funciona.

¿Por qué?

En otras palabras, ¿cómo consumo un archivo con un tipo de contenido de mensaje/rfc822 en mi REST Api? ¿Necesito un método separado que acepte este tipo de medio específico?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Entonces, esto ciertamente tiene que ver con la forma en que su servidor maneja el archivo cargado. application/octet-stream simplemente representa un archivo binario genérico/desconocido. De RFC 2046 § 4.5.1:

El subtipo "octet-stream" se utiliza para indicar que un cuerpo contiene datos binarios arbitrarios.

La mayoría de las aplicaciones intentarán determinar el tipo MIME del archivo mirando la extensión de su archivo, pero tendrán problemas para determinarlo si la extensión es desconocida para ellos. Un archivo eml es solo un archivo de texto, lo que explica por qué al cambiar la extensión a txt funciona sin problemas. La forma más fácil de verificar esto es tomar un archivo txt simple y cambiar su extensión a unknown (por ejemplo) e intentar cargar ese archivo.

He configurado un ejemplo que replica exactamente el mismo escenario y, en este caso, el servidor no tiene problemas para leer el contenido del archivo.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!