Блоггер недавно работает над интрасетированным проектом, где можно получить доступ к внешним данным, но внешне не может получить доступ к внутренним данным, что также приводит к тому, что файл не может быть загружен. Поэтому блогер использует другой подход и создает папку на локальном сервере специально для хранения загруженных данных.
Окружающая среда: JDK, Tomcat
1. Загрузить файлы на стойке регистрации (загрузите Ajax)
<input type = "file" name = "annexurl" id = "Annexurl" MALTY = "MALTY"/>
Где несколько = "несколько" установлено для загрузки нескольких файлов
function uploadfile () {var files = document.getElementbyid ("annexurl"). файлы; if (files.length! = 0) {var formData = new formData (); for (var i = 0; i <files.length; i ++) {var file = files [i]; formData.append (file.name, file); } $. через ContentType: false, успех: function (data) {save (data.data); } else {save (); }}} Здесь нам нужно использовать объект FormData для инкапсуляции объекта файла. Метод save () используется для сохранения пути файла, возвращаемого после загрузки, и сохранения его в базе данных для легкой загрузки.
2. Получить файлы в фоновом режиме и загрузить их на сервер
// Загрузить несколько файлов, вернуть коллекцию объектов (адрес вложения, имя) @Requestmapping (value = "saveFiles", method = requestMethod.post) @Responsebody public jsonObject saveFiles (httpserveltrequest, httpservletresponse response) {jsonobject jsonobject = new jsonobject ();); try {request.setcharacterencoding ("utf-8"); } catch (unsupportEncodingexception e) {e.printstacktrace (); } Collection <part> parts = null; try {parts = request.getParts (); } catch (ioException e) {e.printstackTrace (); } catch (servletexception e) {e.printstacktrace (); } Итератор <part> iterator = parts.iterator (); // Коллекция имен, возвращенных в список переднего плана <string> list = new ArrayList <> (); while (iterator.hasnext ()) {part part = iterator.next (); // Сгенерировать фактическое хранимое имя реального файла (уникальное) // Я не знаю, почему, загрузка файла должна содержать полученное имя файла, в противном случае синтаксис имени файла, имя каталога или тег тома неверна. Не существует такого ограничения при загрузке изображения // Имя файла, сохраните базу данных и используйте его для отображения name name = part.getName (); String realName = uuid.randomuuid (). ToString () + name; list.add (name + "&&" + realName); ///home/tomcat/apache-tomcat-9.0.1/files string realpath = "d:" + file.separator + "apache-tomcat-8.5.15" + file.separator + "files"; // string realPath = "c:" + file.separator + "xhj224" + file.separator + "программное обеспечение" + file.separator + "apache-tomcat-9.0.1" + file.separator + "files"; // string realPath = file.separator + "Home" + file.separator + "tomcat" + file.separator + "apache-tomcat-9.0.1" + file.separator + "files"; File file = new File (realPath); // Если каталог не существует (! File.isdirectory ()) {// Создать файл каталога загрузки файла файла .mkdirs (); } // Реальный путь к строке хранилища файла filePath = realPath + file.separator + realName; try {part.write (filepath); } catch (ioException e) {e.printstackTrace (); }} jsonObject.put ("data", list); вернуть jsonObject; } Коллекция списка добавляет строку, сплайдированную именем файла, и реальное имя файла, которое необходимо позже. RealName предназначен для предотвращения конфликтов между несколькими загруженными именами файлов. RealPath - это путь сохранения файла. Различные операционные системы имеют разные пути. RealPath лучше всего размещен под Tomcat, чтобы облегчить портирование проекта.
Где file.separator является сепаратором пути, который может автоматически идентифицировать, какую операционную систему она находится, и использовать разные разделители пути (Windows '/', Linux - это '/'). Наконец -то верните список на стойку регистрации.
Эта статья была составлена в «Краткое описание методов операции загрузки Java», и все могут учиться и прочитать.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.