/ / Enregistrer le fichier chargé en utilisant angular-file-upload - angularjs, servlets, servlet-3.0

Enregistrer le fichier chargé en utilisant angular-file-upload - angularjs, servlets, servlet-3.0

J'ai créé une page utilisant le composant Angular File Upload (https://github.com/nervgh/angular-file-upload/wiki/Module-API) Cependant, je ne trouve pas comment obtenir les informations du fichier téléchargé pour les sauvegarder sur le disque.

Je ne sais pas quel est le nom de la clé et comment l’enregistrer. Voici un exemple de mon code si vous pouviez m'aider s'il vous plaît.

app.controller("HomeController", ["$scope", "FileUploader", function ($scope, FileUploader) {
$scope.uploadMessage = "Arraste aqui o arquivo";

var uploader = $scope.uploader = new FileUploader( { autoUpload: true, url: "/url"});

// FILTERS

uploader.filters.push({
name: "customFilter",
fn: function(item /*{File|FileLikeObject}*/, options) {
return this.queue.length <= 1;
}
});

// Callbacks
uploader.onAfterAddingFile = function (item) {
$scope.uploadMessage = "Enviando arquivo " + item.file.name.toString();
};

uploader.onCompleteItem = function(item, response, status, headers) {

};
}]);

Et ma fonction post servlet est juste comme ça:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

L'aide du composant Angular indique qu'il existe une propriété appelée "alias" {String}: Nom du champ qui contiendra le fichier. La valeur par défaut est file. Si j'utilise request.getParameter ("fichier"), sa valeur est nulle.

METTRE À JOUR

J'utilise l'annotation @MultipartConfig sur mon serveur, mais request.getPart est toujours nul.

Réponses:

0 pour la réponse № 1

Besoin de changer votre URL, il devrait être unique. Essayer à cela

var uploader = $scope.uploader = new FileUploader({ autoUpload: true, url: "/upload" });

Du côté serveur:

@RequestMapping(value = "/upload" , method = RequestMethod.POST)
public void upload(HttpServletRequest request)
{
//org.springframework.web.multipart.MultipartHttpServletRequest
MultipartHttpServletRequest mRequest;
mRequest = (MultipartHttpServletRequest) request;

Iterator<String> itr = mRequest.getFileNames();
while (itr.hasNext()) {
//org.springframework.web.multipart.MultipartFile
MultipartFile mFile = mRequest.getFile(itr.next());
String fileName = mFile.getOriginalFilename();
System.out.println("*****"+ fileName);

//To copy the file to a specific location in machine.
File file = new File("path/to/new/location");
FileCopyUtils.copy(mFile.getBytes(), file); //This will copy the file to the specific location.
}
}