이것은 작동하지 않습니다. 문제는 내가 무엇이 일어나야 하는지를 충분히 알지 못한다는 것입니다. 이 코드를 디버깅 할 수 없습니다. 임시 폴더 "temp"에 업로드를 저장 한 다음 애플릿으로 이동하려고합니다. 도와주세요? 서블릿에 분명히 액세스하고 있지만 업로드 된 파일을 찾을 수 없습니다 ... 미리 감사드립니다. -Apache 공유 사용 FileUpload
양식 (스크립틀릿을 사용하여 생성되는 문제가 발생할 수 있다면 여기를 넣어)이 자바 스크립트를 호출
<%
out.write("<p>Upload a new game:</p>");
out.write("<form name=\"uploadForm\" action=\"game.jsp\" "
+ "method=\"POST\" enctype=\"multipart/form-data\">"
+ "<input type=\"file\" name=\"uploadSelect\" value=\"\" width=\"20\" />"
+ "<br><input type=\"submit\" value=\"Submit\" name=\"uploadSubmitButton\" "
+ "onclick = \"submitToServlet2('UploadGameServlet');\">"
+ "</form>");
%>
:
다시 서블릿에 간다function submitToServlet2(newAction)
{
document.uploadForm.action = newAction;
}
(일부 중요한 요소가 숨어 있기 때문에 전체 코드가 포함되어 있음)
package org.project;
import java.io.*;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
// import servlet stuff
import org.apache.commons.fileupload.*;
public class UploadGameServlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
if (ServletFileUpload.isMultipartContent(request))
{
try
{
// Create a factory for disk-based file items
FileItemFactory factory = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
List items = upload.parseRequest(request); /* FileItem */
File repositoryPath = new File("\\temp");
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
diskFileItemFactory.setRepository(repositoryPath);
Iterator iter = items.iterator();
while (iter.hasNext())
{
FileItem item = (FileItem) iter.next();
File uploadedFile = new File("\\applets");
item.write(uploadedFile);
}
}
catch (FileUploadException ex)
{
Logger.getLogger(UploadGameServlet.class.getName()).log(Level.SEVERE, null, ex);
}
catch (Exception ex)
{
Logger.getLogger(UploadGameServlet.class.getName()).log(Level.SEVERE, null, ex);
}
}
PrintWriter out = response.getWriter();
try {
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet UploadGameServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet UploadGameServlet at " + request.getContextPath() + "</h1>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
}
서블릿 코드를 디버그 할 수 없습니까? 서블릿에 액세스하고 있습니까? 요청을 제출하기 위해 submitToServlet2 함수에서 ** true **를 반환해야하는지 여부는 알 수 없습니다. –
예, 서버가 표제를 출력합니다 ... 적어도 출력 선에 도달한다는 것을 알고 있습니다. 서블릿 코드를 어떻게 디버깅 할 수 있습니까? – pypmannetjies
if 내부에 일부 로깅 문을 추가 할 수 있습니다. 또한 기록 된 예외가 있습니까? –