none
Parametro multipart/form-data RRS feed

  • Pregunta

  • Buenos días, 

    Tengo una aplicación en vb.net, en la página master, no recuerdo muy bien porque (eso lleva puesto ahi dos años) tengo establecida esta propiedad:

    <form id="form1" runat="server" method="post" enctype="multipart/form-data" >

    El tema es que si quito la etiqueda enctype la aplicacion funciona bien pero no funciona el subir ficheros (debe ser por esto por lo que se puso), ahora bien, el rendimiento actualmente es muy malo en chrome.

    ¿Alguien sabe porque el rendimiento ahora es malo cuando antes era bueno? ¿Será alguna actualización? Por otro lado, ¿alguien podría explicarme para que vale el enctype="multipart/form-data"?

    Gracias

    miércoles, 3 de julio de 2013 7:05

Respuestas

  • Mira lo que he encontrado en un foro

    Chrome Version       : 1.0.154.42
    Other browsers tested:
        Firefox 3: OK
             IE 7: OK

    What steps will reproduce the problem?
    1. Write a simple file upload form like this one:

    <html>
    <body>
    <form method="post" action="file_upload" enctype="multipart/form-data">
      <input type="file" name="thefile">
      <input type="submit" value="submit">
    </form>
    </body>
    </html>

    2. Open the test page in chrome
    3. choose a file with a weird extension. In my case the extension was
    ".aes". Submit the form.
    4. Use some tool to monitor the http request and you will notice that
    Content-Type is not set for thefile. (In my case I wrote a webwork-based
    web application as the server and dumped the request there.)

    For the same test, Firefox 3 uses "application/octet-stream" as the Contet-
    Type for the file and IE7 uses "application/x-zip-compressed"

    5. Re-do the test with a well-known file extension, such as ".xml". Chrome
    properly detected the content type as "text/xml" and set the field in the
    request.

    What is the expected result?

    There should be a Content-Type assigned to the uploaded file. Even if the
    file extension is not recognized, a default value such as
    "application/octet-stream" might be good enough, like what Firefox does.

    What happens instead?

    The Content-Type field for the uploaded file is missing.

    Parece ser que cuando quitas enctype="multipart/form-data" chrome no lo trata como algo binario y lo manda como string y no aplica la técnica de multipart


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos


    miércoles, 3 de julio de 2013 8:43
    Moderador
  • El tema es que si quito la etiqueda enctype la aplicacion funciona bien pero no funciona el subir ficheros

    como es que estas subiendo los archivos ?

    estas usando el control FileUpload de asp.net? porque si lo haces no necesitas especificar ningun multipart

    sabes porque si quito ese parametro en el Google Chrome va fluido

    estas utilizando alguna herramienta como ser fiddler para poder analizar el trafico http y ver en que punto demora

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 3 de julio de 2013 12:39

Todas las respuestas

  • El atributo enctype especifica cómo el form-data debe ser codificado al enviar al servidor.

    El valor del atributo  "multipart/form-data" indica que no hay caracteres codificados. Este valor es necesario si se está usando un form que tienen un control decarga de archivos o fileupload


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    miércoles, 3 de julio de 2013 8:18
    Moderador
  • Y sabes porque si quito ese parametro en el Google Chrome va fluido pero si lo pongo va muy muy lento? Solo pasa con este navegador, con Firefox y IE va fluido siempre. Además es algo reciente, hasta hace dos o tres meses funcionaba muy bien pero el rendimiento en Chrome ha bajado muchismo. ¿Teneis constancia de algun problema?

    Gracias

    miércoles, 3 de julio de 2013 8:24
  • Mira lo que he encontrado en un foro

    Chrome Version       : 1.0.154.42
    Other browsers tested:
        Firefox 3: OK
             IE 7: OK

    What steps will reproduce the problem?
    1. Write a simple file upload form like this one:

    <html>
    <body>
    <form method="post" action="file_upload" enctype="multipart/form-data">
      <input type="file" name="thefile">
      <input type="submit" value="submit">
    </form>
    </body>
    </html>

    2. Open the test page in chrome
    3. choose a file with a weird extension. In my case the extension was
    ".aes". Submit the form.
    4. Use some tool to monitor the http request and you will notice that
    Content-Type is not set for thefile. (In my case I wrote a webwork-based
    web application as the server and dumped the request there.)

    For the same test, Firefox 3 uses "application/octet-stream" as the Contet-
    Type for the file and IE7 uses "application/x-zip-compressed"

    5. Re-do the test with a well-known file extension, such as ".xml". Chrome
    properly detected the content type as "text/xml" and set the field in the
    request.

    What is the expected result?

    There should be a Content-Type assigned to the uploaded file. Even if the
    file extension is not recognized, a default value such as
    "application/octet-stream" might be good enough, like what Firefox does.

    What happens instead?

    The Content-Type field for the uploaded file is missing.

    Parece ser que cuando quitas enctype="multipart/form-data" chrome no lo trata como algo binario y lo manda como string y no aplica la técnica de multipart


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos


    miércoles, 3 de julio de 2013 8:43
    Moderador
  • El tema es que si quito la etiqueda enctype la aplicacion funciona bien pero no funciona el subir ficheros

    como es que estas subiendo los archivos ?

    estas usando el control FileUpload de asp.net? porque si lo haces no necesitas especificar ningun multipart

    sabes porque si quito ese parametro en el Google Chrome va fluido

    estas utilizando alguna herramienta como ser fiddler para poder analizar el trafico http y ver en que punto demora

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 3 de julio de 2013 12:39