Здесь я использую асинхронную загрузку файлов на основе сервлетов. Я не говорю много чушь и просто загружаю код. Полем Полем
пакет com.future.zfs.util; import java.io.file; import java.io.ioexception; импорт java.io.printwriter; import java.util.iterator; import java.util.list; import javax.servlet.servletexcept javax.servlet.http.httpservlectrequest; import javax.servlet.http.httpservletresponse; импорт org.apache.commons.fileupload.fileitem; импорт org.apache.commons.fileupload.fileuadexception; org.apache.commons.fileupload.fileuploadbase.sizelimitexeededException; импорт org.apache.commons.fileupload.disk.diskfileitemfactory; импорт org.apache.commons.filepload.servlet.servletfileUpload; Httpservlet {final long max_size = 10 * 1024 * 1024; // Установите максимальный загруженный файл на 10м // Список форматов файлов, которые можно было загрузить Final String [] allucttype = new String [] {"jpg", "jpeg", "gif", "txt", "doc", "docx", "mp3", "wma", "m4a", "xls"}; public fileUploadServlet () {super (); } public void destry () {super.destroy (); } @Override Protected void Service (httpservlectrequest, httpservletresponse response) throws servletexception, ioexception {response.setContentType ("text/html"); // Установите кодирование символа в UTF-8, так что китайский отображение символов. // создание завода файла жесткого диска для настройки компонента загрузки ServletFileUpload DiskFileItemFactory DFIF = new DiskFileItemFactory (); dfif.setsizethershold (4096); // Установить размер памяти, используемый для временного хранения файлов при загрузке файлов, вот 4K. More than the part will temporarily exist in the hard disk dfif.setRepository(new File(request.getRealPath("/") + "uploadtemp"));// Set the directory where temporary files are stored, the uploadtemp directory under the root directory of the web // Instantiate the upload component with the above factory ServletFileUpload sfu = new ServletFileUpload(dfif); // Установить максимальный размер загрузки sfu.setsizemax (max_size); Printwriter Out = response.getWriter (); // Получить список всех полей загрузки из списка запросов filelist = null; try {filelist = sfu.parserequest (request); } catch (fileUploAdexception e) {// обрабатывать размер файла Слишком большое исключение, если (e Incessionof SizelimitexedEdexception) {out.println ("{Сообщение: 'Размер файла превышает указанный размер:"+max_size+"byte'}"); возвращаться; } e.printstacktrace (); } // Нет загрузки файла if (filelist == null || filelist.size () == 0) {out.println ("{message: 'Пожалуйста, выберите« Загрузить файл »}»); возвращаться; } // Получить все загруженные файлы iterator fileitr = filelist.iterator (); // цикл всех файлов while (fileitr.hasnext ()) {fileitem fileitem = null; String Path = null; длинный размер = 0; // Получить текущий файл fileitem = (fileitem) fileitr.next (); // Игнорируйте поле простой формы вместо домена файла загруженного домена (<input type = "text" /> и т. Д.) if (fileItem == null || fileitem.isformfield ()) {продолжить; } // Получить полный путь пути файла = fileitem.getName (); // Получить размер файла size = fileitem.getSize (); if ("". equals (path) || size == 0) {out.println ("{message: 'Пожалуйста, выберите« Загрузить файл »}»); возвращаться; } // Получить имя файла строки удаленного пути t_name = path.substring (path.lastindexof ("//") + 1); // Получить расширение файла (полное имя будет получено без расширения) string t_ext = t_name.substring (t_name.lastindexof (".") + 1); // Отрицание типа файла за пределами указанного формата файла int alluctflag = 0; int allowedextcount = allucttype.length; for (; allowflag <allowedextcount; allowflag ++) {if (allucttype [allowflag] .equals (t_ext)) break; } if (allowflag == allowedextcount) {string message = ""; for (allowflag = 0; allowflag <allowedextcount; allowflag ++) {message+= "*." + allucttype [AllingFlag] + ""; } out.println ("{сообщение: 'Пожалуйста, загрузите следующий тип файла"+message+"'}"); возвращаться; } long Now = System.currentTimeMillis (); // Сгенерировать имя файла, сохраненное после загрузки в соответствии с системной временной строкой, префикс = string.valueof (сейчас); // Полный путь сохраненного окончательного файла сохраняется в каталоге загрузки в корневом каталоге веб -u_name = request.getRealpath ("/") + "upload/" + prefix + ". + t_ext; // исходный путь имени файла = request.getRealpath ("/") + "upload/" + path; try {// Сохранить fileitem.write (new File (path)); response.setStatus (200); out.println ("{message:/" Загрузка файла успешно загружена. Сохраняется как: " + prefix +". " + t_ext +" Размер файла: " + size +" byte/"}"); } catch (Exception e) {e.printstackTrace (); }}}} web.xml
<servlet> <vervlet-name> fileUploadServlet </servlet-name> <verlet-class> com.future.zfs.util.fileuploadservlet </servlet-class> </servlet> <servlet-mapping> <servlet-name> fileuploadservlet </servlet-name> <urll-pattern>/fileuadeval-mapation </servlet-pater-pater-pater-pater-pater-paterlead>
Загрузить страницу
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"-// w3c // dtd html 4.01 // en "http://www.w3.org/tr/html4/loose.dtd"> <html> <Head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> Вставьте заголовок здесь </title> <script = "javascript" src = "js/jquery.js"> </script> <script type = "text/javascript" src = "js/ajaxfileupload.js"> </script> <script type = "text/javascript"> function ajaxfileud () {$ ("##wording"). }) // Показать изображение, когда вы начинаете загружать файл. FileElementId: 'file', // атрибут идентификатора пространства загрузки файла <input type = "file" id = "file" name = "file"/> dataType: 'json', // тип возвращаемого значения обычно устанавливается на JSON Success: function (Data, Statest) // $ ('#myspan') определяется в Struts2. If (typeof (data.error)! = 'Undefined') {if (data.error! = '') {//Alert(data.error); $ ('#myspan'). html (data.message); } else {//alert(data.message); $ ('#myspan'). html (data.message); }}}, ошибка: function (data, status, e) // Функция сбоя отказа от ответа сервера {// alert (e); $ ('#myspan'). html (e); }}) вернуть false; } </script> </head> <body> <img src = "Images/load.gif" id = "загрузка" style = "display: none;"> <span style = "color: red;" id = "myspan"> </span> <br/> <input type = "file" id = "file" name = "file"/> <br/> <input type = "value =" upload "onclick =" return ajaxfileupload (); "> <a href =" filedowdloadservel? Следует отметить, что при использовании ajaxfileupload для загрузки на основе сервлета вам необходимо установить response.setContentType ("text/html"); Хотя DataType: «JSON» установлен на JSON, вам все равно нужно установить response.setContentType ("text/html"); В противном случае данные, возвращаемые сервером, не могут быть получены, и появится диалоговое окно.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.