Я всегда загружал файлы, используя формы форм для загрузки файлов. Я также видел, как люди загружают файлы, используя JS, но это кажется довольно простым, поэтому я не обращал на это особого внимания. Сегодня я вдруг захотел использовать этот метод для загрузки файлов, и я столкнулся с некоторыми проблемами в течение этого периода. Поэтому он записан так, чтобы вы могли проверить его, если вы столкнетесь с такими проблемами в будущем.
Первое - представить файлы JS и AjaxFileUpload, которые не нужно много говорить.
Тогда есть Ajax, запрашивающий фоновый адрес. Код заключается в следующем:
<div> <input type = "file" id = "upload" name = "upload" style = "font-size: 0; непрозрачность: 0; ширина: 100%; высота: 100%; позиция: абсолютно; слева: 0; сверху: 0;"/> <pan> select file </span> </div> $ ("#upload"). '/test/user/imgupload', // Тип запроса бэкэнда: «post ', // метод запроса Когда вы хотите отправить пользовательский параметр, этот параметр должен быть установлен для публикации SecureUri: false, // Будь то включить SecureURI, по умолчанию является ложным. JSON ', // Тип данных, возвращаемый сервером, может быть XML, Script, JSON, HTML. Alert (json.retmsg);После завершения фронтального кода будет разработан фоновый код.
пакет com.roc.test; импорт java.io.file; import java.util.list; импорт javax.servlet.http.httpservletrequest; импорт javax.servlet.http.httpservletresponse; импорт Javax.ws.rs.consumes; javax.ws.rs.produces; import javax.ws.rs.queryparam; import javax.ws.rs.core.context; import javax.ws.rs.core.mediatype; импорт net.sf.json.jsonobject; импорт org.apache.commons.filepload.fileiTem; org.apache.commons.fileupload.disk.diskFileTemFactory; импорт org.apache.commons.fileUpload.servlet.servletfileUpload; импорт org.jboss.resteasy.annotations.providers.jaxb.json.badgerfish; импорт. net.sf.json.jsonobject;/** * upload file * @author liaowp * */ @controller @path ("/user") public class uploadimg {@path ("/imgupload") @post @produces ("application/json; charset = utf-8") @consumes (mediapepe.multipart_form_borma_borm_borm_form_borm_borsar JsonObject upload (@QueryParam ("orderId") String OrderId,@httpservlectrequest запрос,@context httpservletresponse response) {jsonobject jsonobj = new jsonobject (); String file_path = request.getSession (). GetServletContext (). GetRealPath ("/")+file.separator+"corpfile"+file.separator; // Путь хранилища файла string_file_path = ""; File file = new File (file_path); if (! file.exists () &&! file.isdirectory ()) {// Если папка не существует, создайте file.mkdir (); upload_file_path = file_path; } else {upload_file_path = file_path; } Diskfileitemfactory factory = new DiskFileItemFactory (); // Установить Factory Factory.SetRepoSitory (новый файл (file_path)); // Установить местоположение хранилища файлов Factory.setsizeThreShold (2048 * 1024); // Установить размер, если файл меньше, чем размер установки, поместите его в память, если он больше, чем он размещен в Disk ServletFileUpload uptuld = new ServletfilePload (насказывается); upload.setheaderencoding ("UTF-8"); // Это код для обработки китайских имен файлов. На самом деле, существует только одна строка строкового файла = ""; Список <FieleItem> list; JsonObject jsonObj = new jsonObject (); try {list = upload.parserequest (request); for (fileitem item: list) {if (item.isformfield ()) {string name = item.getfieldname (); String value = item.getString ("UTF-8"); } else {string name = item.getfieldname (); String value = item.getName (); filename = name + ".jpg"; if (item.getSize ()> 10485760) {// Привет, файл загрузки должен быть менее 10 м! jsonobj.put ("retcode", "100"); jsonobj.put ("retmsg", "Привет, загрузка файла должна быть менее 10 м!"):} else {// upload успешно item.write (новый файл (upload_file_path, filename)); System.out.println (file.separator + "corpfile" + file.separator + filename); jsonobj.put ("retcode", "0"); jsonobj.put ("retmsg", "Привет, успешно загрузить!"); }}}}} catch (Exception e) {// upload Не удалось e.printstacktrace (); jsonobj.put ("retcode", "9999"); jsonobj.put ("retmsg", "Привет, загрузка файла не удалась"); } вернуть jsonobj; }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.