Bagaimana cara mengunggah dan mengunduh file di latar belakang Springboot?
Proyek terbaru melibatkan pengunggahan dan unduhan file. Pengunggahan front-end menggunakan plug-in baidu webuploader. Penggunaan plug-in ini masih dalam penelitian dan akan disortir dan direkam di masa depan. Artikel ini terutama memperkenalkan pemrosesan unggahan file dan unduh di latar belakang Springboot.
Unggahan file tunggal
// unggah file tunggal @RequestMapping (value = "/unggah")@responseBodypublic string unggah (@RequestParam ("file") file multipartfile) {coba {if (file.isempty ()) {return "file kosong"; } // Dapatkan nama file string string fileName = file.getoriginalFileName (); logger.info ("Nama file yang diunggah adalah:" + nama file); // Dapatkan nama akhiran dari file string suffixname = filename.substring (filename.lastIndexof (".")); logger.info ("Nama akhiran file adalah:" + suffixname); // Atur string path penyimpanan file filePath = "d: // AIM //"; String path = filepath + fileName + suffixname; File dest = file baru (path); // Mendeteksi apakah direktori ada jika (! Dest.getParentFile (). Exists ()) {dest.getParentFile (). Mkdirs (); // Buat folder baru} file.transferto (dest); // tulis file untuk mengembalikan "diunggah dengan sukses"; } catch (ilegalstateException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); } return "unggah gagal";}Jika Anda ingin memodifikasi jalur file dan nama file, cukup ubah filepath dan nama file.
Banyak unggahan file
// unggah multi-file @RequestMapping (value = "/uploadmore", method = requestMethod.post) @ResponseBodypublic string handlefileupload (httpservletRequest request) {list <ulultipartFile> file = (MultipartTTPServletRequest). File multipartfile = null; Stream BufferedOutputStream = null; untuk (int i = 0; i <file.size (); ++ i) {file = file.get (i); String filepath = "d: // AIM //"; if (! File.isempty ()) {coba {byte [] bytes = file.getbytes (); stream = baru bufferedOutputStream (FileOutputStream baru (file baru (FilePath + file.getoriginalFileName ())))); // Atur jalur file dan name stream.write (bytes); // tulis ke stream.close (); } catch (Exception e) {stream = null; return "th" + i + "unggahan file gagal ==>" + e.getMessage (); }} else {return "th" + i + "Unggah gagal karena file kosong"; }} return "diunggah dengan sukses";}Unduh File
// File Unduh Kode Terkait @RequestMapping ("/Unduh") Public String DownloadFile (permintaan httpservletRequest, httpservletResponse response) {string filename = "AIM_TEST.TXT"; // AIMNYA/GABANGKAN AIMNYA DAN GANTI NAMA FILE yang akan diunduh sesuai dengan kebutuhan bisnis IF (Filename! file = file baru (realpath, nama file); if (file.exists ()) {response.setContentType ("Application/force-download"); // Setel unduhan paksa tanpa membuka response.addheader ("konten-disposisi", "lampiran; fileName =" + fileName); // Atur byte nama file [] buffer = byte baru [1024]; FileInputStream fis = null; BufferedInputStream bis = null; coba {fis = new fileInputStream (file); bis = baru bufferedInputStream (FIS); OutputStream os = response.getoutputStream (); int i = bis.read (buffer); while (i! = -1) {os.write (buffer, 0, i); i = bis.read (buffer); } System.out.println ("Success"); } catch (Exception e) {E.PrintStackTrace (); } akhirnya {if (bis! = null) {coba {bis.close (); } catch (ioException e) {e.printstacktrace (); }} if (fis! = null) {coba {fis.close (); } catch (ioException e) {e.printstacktrace (); }}}}} return null;}Konfigurasi MultipartConfig
Anda dapat menggunakan kelas konfigurasi MultipartConfig untuk mengontrol unggahan file secara global.
@ConfigurationPublic kelas multipartConfig {@bean Public MultipartConfigElement MultipartConfigElement () {MultipartConfigFactory factory = new MultipartConfigFactory (); // atur batas ukuran file, jika halaman melebihi ukuran ini, informasi pengecualian akan dilemparkan pabrik.setmaxfileSize ("2MB"); // kb, mb // atur total data ukuran total factory.setMaxRequestSize ("20MB"); // Atur file folder sementara file // factory.setlocation ("e: // test //"); // Jika file lebih besar dari nilai ini, itu akan disimpan sebagai file. Jika kurang dari nilai ini, file akan disimpan dalam memori. Standarnya adalah 0 // factory.setmaxRequestSize (0); return factory.createMultipartConfig (); }}Hal -hal yang perlu diperhatikan
Format transfer file ujung depan dan belakang harus multipart/form-data
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.