Этот блог кратко представляет проблемы, с которыми вы столкнулись при загрузке и загрузке изображений под Spring Boot. Во -первых, вам нужно создать проект Spring Boot.
1. Код базового контроллера
пакет com.qwrt.station.websocket.controller; импорт com.alibaba.fastjson.jsonobject; Импорт com.qwrt.station.common.util.jsonutil; Импорт org.slf4j.logger; Импорт org.slf4j.loggerfactory; Импорт org.springframework.beans.factory.annotation.value; Импорт org.springframework.web.bind.annotation.requestmapping; Импорт org.springframework.web.bind.annotation.requestmethod; Импорт org.springframework.web.bind.annotation.requestparam; Импорт org.springframework.web.bind.annotation.restcontroller; Импорт org.springframework.web.multipart.multipartfile; Импорт javax.servlet.http.httpservletrequest; Импорт javax.servlet.http.httpservletresponse; импортировать java.io.*; /*** Создано Джеком 2017/10/30. */ @RestController @RequestMapping ("v1/ uploaddownload") открытый класс oploaddownloaller {private static final logger logger = loggerfactory.getLogger (uploaddayController.class); @Value ("$ {uploadDir}") private String uploadDir; @RequestMapping (value = "/uploadImage", method = requestMethod.post) public jsonObject uploadImage (@RequestParam (value = "file") MultiplaInfle File) бросает runtimeexception {if (file.isempty ()) {return jsonutil.getfailjsonobject {if (file.isempty ()) {return jsonutil.getfailjsonobject ("file.isempty ()); } // Получить имя файла string filename = file.getoriginalfilename (); logger.info («Загруженное имя файла:» + filename); // Получить файл SuffixName = filename.substring (fileName.lastIndexof (".")); logger.info («Загруженное суффиксное имя:» + суффикс); // путь после загрузки файла string filePath = uploadDir; // Решить китайские проблемы, китайский путь под LiUnx, задача отображения изображения // filename = uuid.randomuuid () + suffixName; File dest = new File (filePath + FileName); // обнаружил, существует ли каталог if (! Dest.getParentFile (). } try {file.transferto (dest); logger.info («Путь файла после загрузки не является:» + filePath + имя файла); return jsonutil.getSuccessjsonObject (имя файла); } catch (allodalStateException e) {e.printstackTrace (); } catch (ioException e) {e.printstackTrace (); } return jsonutil.getFailJsonObject ("overload file waill"); } // Загрузка файла Связанный код @Requestmapping (value = "/загрузка iMage", method = requestMethod.get) public StringImage (String ImageName, httpservlectrequest, httpservletresponse response) {// string fileName = "123.jpg"; logger.debug («Имазг ImageName:»+ImageName); String fileUrl = uploadDir+ImageName; if (fileUrl! = null) {// В настоящее время файл получен из файла web-inf // проекта (этот каталог можно настроить в следующей строке кода) и загрузить на пользователи C: // //, что является Default Download Directory of Machine/*string realPath = request.getServletContext () getRealPath ("// web-in velepath = request.getservletcetext (). File (realPath, filename);*/ file file = new File (fileUrl); if (file.exists ()) {response.setContentType ("Application/Force-Download"); // Установить вынужденную загрузку, чтобы не открывать response.addheader ("content-disposition", "Attactment; filename =" + ImageName); // Установить имя файла 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; }}}}В приведенном выше коде есть два метода. Приведенный выше метод является методом загрузки изображений, а следующим методом является метод загрузки изображений. Чтобы загрузить изображение, вам нужно передать имя файла изображения. Проверьте его на iOS, Android Phone, Google Chrome, и нет проблем с загрузкой и загрузкой.
2. Основной код тестируемого HTML заключается в следующем, загружать и загружать изображения:
<! Doctype html> <html> <head> <meta charset = "utf-8"/> <title> websocket Chat </teal> </head> <body> <div> <babel> Входная информация: </label> <input id = "id"/> <br/> <tood id = "btn" id = "Dinsnection"> Densnection < /button> <br /> <br /> <form ectype = "Multipart /Form-Data" id = "uploadform"> <input type = "file" name = "uploadfile" id = "upload_file" style = "margin-bottom: 10px;"> <input = button "ud =" uploadpicbutton "quitletton"; onclick = "uploadimage ()"> </form> <!-<input type = "file" onchange = "uploadimgtest ();" id = "uploadimg" name = "uploadimg"/> <button id = "uploadimage" onclick = "uploadImage ();"> upload </button>-> </div> <div id = "test"> </div> <hr color = "blanchedalmond"/> <div id = "voiceediv"> </div> <hr color = "chartraus <img src = "http://192.168.9.123:8860/v1/uploaddownload/downloadimage?imagename=123.jpg"/> </div> </body> <script src = "js/jquery-3.2.1.min.js"> </script> <! Th: src = "@{stomp.min.js}"> </script>-> <script src = "js/sockjs.min.js"> </script> <script> var websocketurl = "ws: //192.168.9.123: 8860/websocketServer"; var websocket; if ('websocket' in window) {// websocket = new WebSocket ("ws: //" + document.location.host + "/websocketserver"); // webSocket = new WebSocket ("WS: //192.168.9.123: 9092/websocketserver"); // websocket = new WebSocket ("ws: // localhost: 8860/websocketserver"); websocket = new WebSocket (websocketurl); } else if ('mozwebsocket' in window) {websocket = new mozwebsocket ("ws: //" + document.location.host + "/websocketserver"); } else {websocket = new sockjs ("http: //" + document.location.host + "/sockjs/websocketserver"); } websocket.onopen = function (evnt) {console.log ("onopen ----", evnt.data); }; websocket.onmessage = function (evnt) {//$("#test").html("(<font color = 'red'> " + evnt.data +" </font>) "); console.log ("onmessage ----", evnt.data); //$("#test").html(evnt.data); $ ("#test"). Append ('<div>' + event.data + '</div>'); }; websocket.onerror = function (evnt) {console.log ("onerror ----", evnt.data); } websocket.onclose = function (evnt) {console.log ("onclose ----", evnt.data); } $ ('#btn'). on ('click', function () {if (websocket.readstate == websoctocket.open) {var msg = $ ('#id'). val (); // Вычисление фонового метода Handletextmessage WebSocket.send (msg);} else {alert ("соединение не удалось!"); $ ('#Densnection'). On ('click', function () {if (websocket.readystate == websocket.open) {websocket.colose (); //websocket.onclose (); console.log ("Закрыть соединение WebSocket успешно");}}); $ ('#connection'). on ('click', function () {if (websocket.readstate == websocket.colosed) {websocket.open (); //websocket.onclose (); console.log («Откройте соединение WebSocket Scepbute успешно»);}}); // Слушайте событие закрытия окна. Когда окно закрыто, активно закрывайте соединение WebSocket, чтобы предотвратить закрытие окна, прежде чем соединение будет отключено, и сторона сервера будет бросить исключения. window.onbeforeunload = function () {websocket.close (); } function uploadImgTest () {} функция uploadImage () {// var uploadUrl = "http: // localhost: 8860/v1/uploaddownload/uploadimage"; varulloadUrl = "http://192.168.9.123:8860/v1/uploaddownload/uploadimage"; var DownloadUrl = "http://192.168.9.123:8860/v1/uploaddownload/downloadimage" var pic = $ ('#upload_file') [0] .files [0]; var fd = new FormData (); //fd.append('Uploadfile ', pic); fd.append ('file', pic); $. = $ ("<img />") img.attr ("src", downurl+"? ImageName ="+data.data); } </script> </html>Некоторые из вышеперечисленных кодов не имеют ничего общего с загрузкой и загрузкой изображений. Удалите их самостоятельно по мере необходимости и посмотрите на основной код для загрузки и загрузки изображений. Вам нужно представить jQuery.
3. Конфигурация свойства Свойства Spring Boot:
1. Решите проблему загрузки слишком большой картины:
Весна: http: Multipart: Max-File-Size: 100 МБ #FILE Размер загрузки размером с максимальный размер: 200 МБ #MAXIMUM-размер запроса
Это новая версия Spring Boot, чтобы решить проблему слишком большой загрузки изображений или файлов. Это не то, как босс решил это. Вы можете проверить информацию самостоятельно
2. Место, где файл конфигурации загружается и сохраняется:
#UploadDir: f:/mystudy/pic/
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.
Фестивальное благосостояние фестиваля: