내 JSP 페이지에 양식이 있습니다. 이 양식에서 파일 (zip 아카이브)을 선택하고 submmit call servlet을 클릭하여이 파일을 업로드하십시오. 파일 업로드에 대해서는 Apache Commons FileUlpoad 라이브러리를 사용하십시오. 업로드 후 메신저 아카이브 압축을 풉니 다. 저것은 내가이 jsp를 redict 않습니다.포틀릿 사용 매개 변수를 보내는 방법 jquery
JSP 코드 :
<form action="Upload_Servlet" method="post" enctype="multipart/form-data">
<div id="up">
<input id="fileUpload1" type="file" name="filename1"value="Browse..."/>
</div>
<div>
<input id="btnSubmit" type="submit" value="Загрузить">
<input type="button" id="del" onclick="deleting()" value="Удалить">
</div>
</form>
서블릿 코드 :
public class uploadfile extends HttpServlet
{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
System.out.println(response.getCharacterEncoding());
response.setCharacterEncoding("UTF-8");
System.out.println(response.getCharacterEncoding());
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.println("wtpwebapps<br/>");
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (!isMultipart) {
writer.println("<HTML>");
writer.println("<HEAD <TITLE> Upload4 </TITLE> </HEAD>");
writer.println("<BODY>");
writer.println("<FORM action = \"Upload_Servlet\" method = \"post\" enctype = \"multipart/form-data\">");
writer.println("<INPUT type = file name = ufile>");
writer.println("<INPUT type = submit value = \"Attach\">");
writer.println("<h1>its not multipart</h1>");
writer.println("</FORM>");
writer.println("</BODY>");
writer.println("</HTML>");
return;
}
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> list=null;
String mifpath= "1";
String path = " ";
String mif = " ";
String from = "\\\\";
String to ="/";
String error="";
try{
list = upload.parseRequest(request);
Iterator<FileItem> it = list.iterator();
response.setContentType("text/html");
while (it.hasNext())
{
FileItem item = (FileItem) it.next();
File disk = new File("C:/uploaded_files/"+item.getName());
path = disk.toString();
String code = new String(path.substring(path.lastIndexOf("."), path.length()).getBytes("ISO-8859-1"),"utf-8");
if (code.equalsIgnoreCase(".zip"))
{
mifpath=path;
mif = mifpath.replaceAll(from, to);
item.write(disk);
error=unzip.unpack(mif, "C:/uploaded_files");
}
else
{
error = "Выбранный файл не является архивом zip";
}
}
}
catch (Exception e) {
log("Upload Error" , e);
}
request.setAttribute("error", error);
request.getRequestDispatcher("/Home.jsp").forward(request, response);
// String redictedURL="http://localhost:8080/redicted_test/Home.jsp";
// response.sendRedirect(redictedURL);
writer.close();
}
}
이 지금은 포털에서이 작업을 수행 할 수. 그 파일을 업로드 한 후 내 JSP를 다시로드하고 싶지 않다는 뜻입니다. 그래서 Jquery를 사용해야합니다. 그리고 몇 가지 질문이 있습니다 :
- 내 경우에 jquery를 사용하여 양식을 제출하는 방법은 무엇입니까?
- 내 서블릿 코드가 포틀릿에서 작동합니까?
- 포틀릿에서 매개 변수를 jps로 보내는 방법은 무엇입니까?
anawer 용 Tnx. 한 가지 더 말해 줄 수 있어요? 파일 업로드를 위해 포틀릿에서 사용하는 것이 더 나은 점은 무엇입니까? org.apache.commons.fileupload.portlet 또는 jquery 스크립트? –
jquery에서 보낸 데이터를 구문 분석하기 위해 포틀릿에 쓸 내용. –
fileupload에 관해서는 나는 결코 그것을하지 않았다 그래서 나는 모른다. Java에서 json 조작에 관해서는 Google의 Gson을 사용하십시오. 원한다면 답을 표시하십시오. – Tomer