파일을 업로드하기 위해 양식 양식을 사용하여 파일을 항상 업로드했습니다. 또한 사람들이 JS를 사용하여 파일을 업로드하는 것을 보았지만 매우 간단해 보이므로 많은 관심을 기울이지 않았습니다. 오늘 나는 갑자기이 방법을 사용하여 파일을 업로드하고 싶었고이 기간 동안 몇 가지 문제가 발생했습니다. 따라서 앞으로 그러한 문제가 발생하면 확인할 수 있도록 기록됩니다.
첫 번째는 JS 및 AjaxFileUpload 파일을 소개하는 것입니다.
그런 다음 Ajax가 배경 주소를 요청합니다. 코드는 다음과 같습니다.
<div> <입력 유형 = "파일"id = "upload"name = "업로드"스타일 = "font-size : 0; 불투명도 : 0; 너비 : 100%; 높이 : 100%; 위치 : 절대; 왼쪽 : 0;"/> <span> 파일 선택 </span> </div> $ ( "#upload"). '/user/imgupload', // 백엔드 요청 주소 유형 : // 요청 메소드 사용자 정의 매개 변수를 제출하려면이 매개 변수는 SecureUri를 게시하도록 설정해야합니다. 'JSON', // 서버가 반환 한 데이터 유형은 XML, 스크립트, JSON, HTML이 될 수 있습니다. ALERT (JSON.RETMSG);
프론트 엔드 코드가 완료되면 백그라운드 코드가 개발됩니다.
package com.roc.test; import java.io.file; import java.util.list; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.rs.rs.consumes; import javax.w javax.wost; javax.ws.rs.produces; import javax.ws.rs.rs.queryparam; import javax.ws.rs.core.context; import javax.ws.rs.core.mediatype; import net.sf.json.jsonobject; import org.apache.commons.fileupload.fileitem; import org.apache.commons.fileupload.disk.diskfileitemfactory; import org.apache.commons.fileupload.servlet.servletfileupload; import org.jboss.resteasy.annotations.providers.javsb.json.badgerfish; import org.springfram.stereotte.controller; net.sf.json.jsonobject;/** * 업로드 파일 * @Author liaOwp */ @controller @path ( "/user") public class uploadImg {@path ( "/imgupload") @post @prodse ( "application/json; charset = utf-8") @consumes (mediaType.multipart_form.multipart_form.multipart_form. upload (@QueryParam ( "OrderId") String OrderId,@Context httpservletRequest request,@context httpservletResponse 응답) {jsonobject jsonobj = new JsonObject (); String file_path = requestsession (). getServletContext (). getRealPath ( "/")+file.separator+"corpfile"+file.separator; // 파일 스토리지 경로 문자열 업로드 upload_path = ""; 파일 = 새 파일 (file_path); if (! file.exists () &&! file.isdirectory ()) {// 폴더가 존재하지 않으면 file.mkdir ()를 작성하십시오. upload_file_path = file_path; } else {upload_file_path = file_path; } diskFileItemFactory Factory = 새로운 DiskFileItemFactory (); // 팩토리 팩토리 설정 (새 파일 (file_path)); // 파일 스토리지 위치 설정 팩토리 세트 팩토리 (2048 * 1024); // 파일이 설정 크기보다 작은 경우 메모리에 더 큰 경우 메모리에 넣습니다. upload.setheaderencoding ( "UTF-8"); // 이것은 중국 파일 이름을 처리하기위한 코드입니다. 실제로, 줄 string filename = ""는 하나뿐입니다. 목록 <fileItem> 목록; jsonobject jsonobj = new jsonobject (); try {list = upload.parserequest (요청); for (fileitem item : list) {if (item.isformfield ()) {문자열 이름 = item.getfieldName (); 문자열 값 = item.getString ( "UTF-8"); } else {문자열 이름 = item.getFieldName (); 문자열 값 = item.getName (); filename = name + ".jpg"; if (item.getSize ()> 10485760) {// 안녕하세요, 업로드 파일은 10m 미만이어야합니다! jsonobj.put ( "retcode", "100"); jsonobj.put ( "retmsg", "hello, 파일 업로드는 10m 미만이어야합니다!") :} else {// item.write (새 파일 (upload_file_path, filename)); System.out.println (file.separator + "corpfile" + file.separator + filename); jsonobj.put ( "retcode", "0"); jsonobj.put ( "retmsg", "안녕하세요, 성공적으로 업로드!"); }}}}} catch (예외 e) {// 업로드 실패 e.printstacktrace (); jsonobj.put ( "retcode", "9999"); jsonobj.put ( "retmsg", "hello, 파일 업로드 실패"); } return jsonobj; }}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.