Comment télécharger et télécharger des fichiers dans l'arrière-plan Springboot?
Un projet récent impliquait le téléchargement et le téléchargement de fichiers. Le téléchargement frontal utilise le plug-in baidu webuploader. L'utilisation de ce plug-in est toujours en cours de recherche et sera réglée et enregistrée à l'avenir. Cet article présente principalement le traitement du téléchargement et du téléchargement de fichiers dans l'arrière-plan Springboot.
Téléchargement de fichiers unique
// un seul fichier upload @RequestMapping (value = "/ upload") @ réponsebodypublic string upload (@RequestParam ("file") Fichier multipartFile) {try {if (file.isempty ()) {return "file est vide"; } // Obtenez le nom de fichier String filename = file.getoriginalFileName (); Logger.info ("Le nom de fichier téléchargé est:" + nom de fichier); // Obtenez le nom du suffixe de la chaîne de fichiers suffixName = filename.substring (filename.lastIndexof (".")); Logger.info ("Le nom du suffixe du fichier est:" + suffixName); // Définissez la chaîne de chemin de stockage de fichier filepath = "d: // fixe //"; String path = filepath + fileName + suffixName; File dest = new File (chemin); // détecter si le répertoire existe if (! Dest.getParentFile (). Existant ()) {dest.getParentFile (). MkDirs (); // Créer un nouveau dossier} file.transferto (dest); // Écrivez le fichier à retourner "Uploaded réussi"; } catch (illégalStateException e) {e.printStackTrace (); } catch (ioException e) {e.printStackTrace (); } return "le téléchargement a échoué";}Si vous souhaitez modifier le chemin du fichier et le nom du fichier, modifiez simplement FilePath et Nom.
Multipliers de téléchargement de fichiers
// Multi-file upload @RequestMapping (value = "/ uploadmore", méthode = requestMethod.post) @ResponseBodyPublic String handleFileupload (httpServleRequest request) {list <multipartFile> files = ((multipartHTTTSservletRequest) request) .getFiles ("file"); Fichier multipartFile = null; BufferedOutputStream stream = null; pour (int i = 0; i <files.size (); ++ i) {file = file.get (i); String filepath = "d: // fidèle //"; if (! file.isempty ()) {try {byte [] bytes = file.getBytes (); Stream = new BufferedOutputStream (new FileOutputStream (nouveau fichier (filepath + file.getoriginalFileName ()))); // définir le chemin du fichier et le nom Stream.Write (Bytes); // Écrivez sur Stream.Close (); } catch (exception e) {stream = null; return "th" + i + "File upload échoue ==>" + e.getMessage (); }} else {return "th" + i + "La téléchargement a échoué parce que le fichier est vide"; }} return "téléchargé avec succès";}Téléchargement de fichiers
// Téléchargement de fichier Code connexe @RequestMapping ("/ Download") public String DownloadFile (HttpServLetRequest Request, httpservletResponse Response) {String filename = "AIM_TEST.TXT"; // Définissez le nom du fichier et remplacez-le par le nom de fichier à télécharger selon les besoins de l'entreprise If (FileName! = Null) {// Définir la chaîne de fichier = nouveau fichier (realPath, nom de fichier); if (file.exists ()) {réponse.setContentType ("application / force-download"); // définir le téléchargement forcé sans ouverture réponse.addheader ("contenu-disposition", "pièce jointe; filename =" + filename); // définir le nom de fichier byte [] tampon = nouveau octet [1024]; FileInputStream fis = null; BufferedInputStream bis = null; try {fis = new FileInputStream (fichier); bis = new BufferedInputStream (FIS); OutputStream OS = Response.getOutputStream (); int i = bis.read (tampon); while (i! = -1) {os.write (tampon, 0, i); i = bis.read (tampon); } System.out.println ("Success"); } catch (exception e) {e.printStackTrace (); } enfin {if (bis! = null) {try {bis.close (); } catch (ioException e) {e.printStackTrace (); }} if (fis! = null) {try {fis.close (); } catch (ioException e) {e.printStackTrace (); }}}}} retourne null;}Configuration multipartConfig
Vous pouvez utiliser la classe de configuration multipartConfig pour contrôler les téléchargements de fichiers globalement.
@Configurationpublic class MultipartConfig {@Bean public multipartConfigelement multipartConfigelement () {multipartConfigFactory factory = new multipartConfigFigory (); // Définir la limite de la taille du fichier, si la page dépasse cette taille, les informations d'exception seront lancées Factory.SetMaxFileSize ("2MB"); // KB, MB // Définissez le total des données téléchargées Total Size Factory.SetMaxRequestSize ("20 Mo"); // Définissez le fichier Temporary Falder Path // Factory.SetLocation ("E: // test //"); // Si le fichier est supérieur à cette valeur, il sera stocké en tant que fichier. S'il est inférieur à cette valeur, le fichier sera stocké en mémoire. La valeur par défaut est 0 // factory.setMaxRequestSize (0); return factory.CreateMultiPartConfig (); }}Choses à noter
Le format de transfert de fichiers avant et arrière doit être multiparte / format de forme
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.