Spring MVC carga de archivos múltiples mientras se trabaja en la libertad de WebSphere

Gautam:

Estoy corriendo en extraño problema al intentar cargar varios archivos usando ajax. por eso estamos utilizando Ajax para cargar múltiples archivos? Debido a que el usuario quiere revisar todos los archivos de los que él / ella está tratando de subir al servidor. lo que entendemos por crítica es, el usuario debe permitir que el archivo borrado antes de subir al servidor.

Lo he intentado hasta ahora?

JSP

<form id="form1" method="post" action="uploadMultipleFiles" enctype="multipart/form-data">
  <!-- File input -->    
  <input name="file" id="files" type="file"  multiple="multiple"/><br/>
  <button value="Submit" onclick="uploadFiles()" >Upload</button><i>upload</i>
</form>

JS

function uploadFiles(){
  var files = $("#files").prop("files");
  var oMyForm = new FormData();   
  oMyForm.append("file", files[0]);  //currently trying with only one file
      $.ajax({
            url:  'uploadMultipleFiles',
            data: oMyForm,
           // dataType: 'text',
            processData: false,
            contentType: false,
            type: 'POST',
            success: function(data){
                console.log(data)
            }
          });
}

Controlador de primavera (Versión 3.0.0 release)

@RequestMapping(value = "/uploadMultipleFiles", method = RequestMethod.POST)
    public @ResponseBody String uploadMultipleFilesHandler(HttpServletRequest request, HttpServletResponse response)  {
  MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  System.out.println(multipartRequest);   
}

No he incluido código completo del controlador, pero creo que debería ser suficiente para cualquier puntero que puede proporcionar.

configuartion frijol de primavera

<bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

        <property name="maxUploadSize" value="900000" />

</bean>

Excepción

java.lang.ClassCastException: com.ibm.ws.webcontainer31.srt.SRTServletRequest31 no se puede convertir a org.springframework.web.multipart.MultipartHttpServletRequest

amable ayuda a averiguar qué podía hacer para resolver esta excepción y disponibilidad Nota mismo código está trabajando en el archivo tomcat sin embargo el perfil de WebSphere libertad parece tener algún problema.

tio:

Está utilizando una llamada AJAX en lugar del formulario de envío presentar. El enctype no se aplica a la llamada AJAX. Añadir "multipart / form-data" a la petición AJAX

Dependiendo de la versión de jQuery que se requiere para añadir el ContentType (o no está permitido)

Pero si el ContentType no se envía al controlador del interceptor de primavera utiliza el defecto resquest tipo de contenido, contenido que depende el tipo de interceptación en la ejecución de servlets y estaba allí es un "especial" uno hecho por IBM.

Por ejemplo, si está utilizando jQuery lesst que 1,9 se requiere para agregar type: 'POST'y tambiénmethod: 'POST'

Usted podría tratar de usar sólo el XMLHttpRequest antes de usar algo como jQuery

HTML:

   <form enctype="multipart/form-data" method="post" name="fileinfo" id="fileinfo"> 
... 

   </form>

javacript:

var files = $("#files").prop("files");


var formData = new FormData($("#fileinfo"));
formData.append("file", files[0],"myFileName.txt");
var oReq = new XMLHttpRequest();
oReq.open("POST", "uploadMultipleFiles", true);
oReq.send(formData);

Ver que en el ejemplo de la FormtData se crea a partir de un formulario que contiene la información enctype

ayuda Mozilla FormData

Este problema con jQuery y el Content-Type es similar a la de un how-to-send-FormData-objetos-con-Ajax-solicitudes-en-jquery

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=186787&siteId=1
Recomendado
Clasificación