He aquí un ejemplo que muestra cómo se puede utilizar MVC Anotaciones para lograr algo similar en primavera:
@RequestMapping(method=RequestMethod.POST, value="/multipartexample")
public String examplePost(@ModelAttribute("fileUpload") FileUpload fileUpload){
// Handle form upload and return a view
// ...
}
@InitBinder
public void initBinder(ServletRequestDataBinder binder) {
binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor());
}
public class FileUpload implements Serializable {
private MultipartFile myFile;
public MultipartFile getMyFile() {
return myFile;
}
public void setMyFile(MultipartFile myFile) {
this.myFile = myFile;
}
}
Usted debe ser capaz de escribir en este punto final del formulario HTML, asumiendo el nombre del elemento de archivo es 'myFile'. Su forma puede ser similar al siguiente:
<form:form commandName="fileUpload" id="fileUploadForm" enctype="multipart/form-data">
<form:input type="file" path="myFile" id="myFile"/>
</form:form>
El código @InitBinder es importante porque da instrucciones a la primavera para convertir los archivos a una matriz de bytes, que luego se puede convertir en el MultipartFile
¿El MutipartFile tiene el atributo 'ruta' y 'id' automáticamente analizado desde la solicitud? – xybrek
Si se refiere a la ruta del archivo en la computadora de los clientes y al atributo "id" de la etiqueta de entrada, entonces no. Esos no se envían al servidor en absoluto, nunca. – pap
Ok ... Voy a probar esto y espero que funcione con App Engine. – xybrek