Как загрузить и загружать файлы на фоне Springboot?
Недавний проект включал загрузку и загрузку файлов. Загрузка фронта использует плагин Baidu WebUploader. Использование этого плагина все еще находится под исследованиями и будет разобраться и записано в будущем. Эта статья в основном представляет обработку загрузки и загрузки файлов на фоне Springboot.
Одно файл загрузка
// Один файл загрузка @RequestMapping (value = "/upload")@responsbodypublic string upload (@requestparam ("file") multiplablefile file) {try {if (file.isempty ()) {return "файл пуст"; } // Получить имя файла string filename = file.getoriginalfilename (); logger.info («Загруженное имя файла:» + filename); // Получить имя суффикса строки файла SuffixName = fileName.substring (fileName.lastIndexof (".")); logger.info («Имя суффикса файла:» + суффикс); // Установить путь хранилища файла string filePath = "d: // aim //"; String path = filePath + имя файла + суффикс; File dest = new File (path); // определить, существует ли каталог if (! Dest.getParentFile (). Существует ()) {dest.getParentFile (). Mkdirs (); // Создать новую папку} file.transferto (dest); // Напишите файл, чтобы вернуть «загружены успешно»; } catch (allodalStateException e) {e.printstackTrace (); } catch (ioException e) {e.printstackTrace (); } вернуть "upload fail";}Если вы хотите изменить путь к файлу и имя файла, просто измените FilePath и имя файла.
Несколько файлов загрузки
// многопрофильная загрузка @requestmapping (value = "/oploadmore", method = requestmethod.post) @responsebodypublic строки handlefileupload (httpservlectrequest) {list <lipeartfile> files = ((multiprthttpserquest) запрос). Getfiles ("file"); Multiplatfile file = null; BufferedOutputStream Stream = null; for (int i = 0; i <files.size (); ++ i) {file = files.get (i); String filePath = "d: // aim //"; if (! file.isempty ()) {try {byte [] bytes = file.getbytes (); stream = new BufferedOutputStream (new FileOutputStream (новый файл (filePath + file.getoriginalfilename ()))); // Установить путь к файлу и name stream.write (bytes); // записать в stream.close (); } catch (Exception e) {stream = null; вернуть "th" + i + "upload file не удалась ==>" + e.getmessage (); }} else {return "th" + i + "upload не удалась, потому что файл пуст"; }} вернуть "Загружено успешно";}Файл Скачать
// Загрузка файла Связанный код @RequestMapping ("/download") public String Downloadfile (httpservlectrequest, httpservletresponse response) {string filename = "aim_test.txt"; // Установить имя файла и заменить его с помощью файла для загрузки в соответствии с деловыми потребностями. = новый файл (RealPath, имя файла); if (file.exists ()) {response.setContentType ("Application/Force-Download"); // Установить принудительное загрузку без открытия response.addheader ("content-disposition", "Attactment; filename =" + filename); // Установить имя файла byte [] buffer = new Byte [1024]; FileInputStream fis = null; BufferedInputStream bis = null; try {fis = new FileInputStream (file); bis = new BufferedInputStream (FIS); OutputStream OS = response.getOutputStream (); int i = bis.read (buffer); while (i! = -1) {os.write (буфер, 0, i); i = bis.read (buffer); } System.out.println ("Успех"); } catch (Exception e) {e.printstackTrace (); } наконец {if (bis! = null) {try {bis.close (); } catch (ioException e) {e.printstackTrace (); }} if (fis! = null) {try {fis.close (); } catch (ioException e) {e.printstackTrace (); }}}}} return null;}MultipartConfig Configuration
Вы можете использовать класс конфигурации MultipartConfig для управления загрузкой файлов в глобальном плане.
@ConfigurationPublic Class MultipartConfig {@bean public multipryConfigelement multipRoctConfigelement () {MultipArtConfigCatory Factory = new MultipROCKCONFIGFACTORY (); // Установить ограничение размера файла, если страница превышает этот размер, информация об исключении будет выбрана Factory.setMaxFilesize ("2MB"); // KB, MB // Установите общее количество загруженных данных общего размера. // Установить файл временный путь папки // factory.setLocation ("e: // test //"); // Если файл больше этого значения, он будет храниться в виде файла. Если это меньше, чем это значение, файл будет храниться в памяти. По умолчанию 0 // factory.setmaxRequestsize (0); вернуть фабрику.createmultipartConfig (); }}Что следует отметить
Формат передачи файла переднего и заднего фона
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.