2011-05-26 25 views
5

Tengo que enviar un archivo a mi servidor usando jQuery. ¿Cómo puedo hacerlo usando JSON?Cómo enviar un archivo a un servidor usando JSON y jQuery

El tipo de archivo no es importante, tengo la intención de recibir un byteArray o algo así en mi aplicación de servidor.

Si se ayuda a que estoy usando una aplicación ASP.NET, pero mi problema no es la forma en que manejo que en el lado del servidor, la cuestión es cómo enviar los datos del archivo usando jQuery.

He encontrado algunos complementos de carga para jQuery que usan un archivo Flash, otros que no usan Flash, pero lo que realmente quiero saber es cómo funciona el proceso, ¡no solo usar algo ya creado por alguien!

Respuesta

4

jQuery es JavaScript. Creo que quieres enviar los datos a través de Ajax, lo cual no se puede hacer. Lo mejor que puede hacer es usar un iframe en una página que carga el archivo en un directorio temporal (no la temperatura predeterminada), y luego proporciona la información a la página principal donde se guarda el archivo y luego lo usa .

No hay forma de cargar un archivo en un servidor con Ajax. Es muy inseguro.

I retraer la declaración anterior EMPRESA

Ahora está habilitado para publicar/descarga fecha del archivo usando Javascript es muy complicado para un novato de entender, pero ahora es posible a diferencia de cuando se respondió a esta pregunta

Using HTML5 file uploads with AJAX and jQuery

2

Las cargas de archivos no funcionarán a través de una solicitud AJAX. Debe ser una solicitud HTTP completa (POST). Todos los complementos de jQuery que se utilizan suelen utilizar un applet basado en Flash o Java o el truco iframe oculto donde se realiza un POST real utilizando un iframe oculto en la página.

1

Puede invocar una Publicación HTTP usando $ .ajax, no tiene que hacer ningún trabajo manual manipulando el contenido del archivo a json. La carga útil estará en la Solicitud HTTP si su formulario contiene una entrada (tipo = "archivo"). Puedo enviar una muestra de código si me puede dar más detalles sobre su código.

+0

estoy planificando el proceso, solo comprobando las posibilidades de hacerlo.si tienes algún código de trabajo, eso podría ayudar a apreciarlo mucho. tnkx –

+0

ASP.NET Web Forms o MVC? –

+0

Mi problema no es del lado del servidor, lo que no sé es cómo enviar un archivo al servidor, use un script del lado del cliente como jquery. Pero estoy usando webforms –

-2

Recomiendo usar valum's plugin para esto. Tiene mucho soporte y se actualiza constantemente a medida que los navegadores comienzan a implementar soporte HTML5 como FileReader, etc. Haciendo que sea más fácil y más fácil enviar solicitudes de archivos "AJAX".

https://stackoverflow.com/search?q=valums

EDIT: Lo sentimos por no leer su pregunta totalmente - He leído el título, leer los primeros párrafos de pareja y creía que sabía lo que estaba buscando. Resultó ser que el último párrafo contenía una cláusula de exclusión que yo no veía.

+1

Como lo mencioné, ¡estoy buscando información sobre el proceso de cómo funciona! –

+0

Oops, pensé que estabas haciendo una pregunta de programación concisa. Lee la fuente. –

+0

apreciamos mucho su respuesta, pero usted mencionó (último párrafo) que no estoy interesado en los componentes !, ¡estoy interesado en conocer el proceso! –

1

Lo he intentado usar $ .ajaxFileUpload (http://www.phpletter.com/Demo/AjaxFileUpload-Demo/) y si está utilizando ASP.NET MVC se puede recuperar los archivos de la siguiente manera

public ActionResult UploadFiles(List<HttpPostedFileBase> uFile) 

Uso de $ .ajaxFileUpload:

$.ajaxFileUpload 
(
    { 
     url: "/Controller/UploadFiles", 
     secureuri: false, 
     fileElementId: 'uFile', // the id of the file input controls holding the references to the files 
     dataType: 'json', 
     success: function (data, status) { 
      // needs to handle the json return 
     }, 
     error: function (data, status, e) { 
      // same as error 
     } 
    } 
) 

Para mí funciona muy bien.

Cuestiones relacionadas