2012-01-14 5 views
2

"파일을 찾을 수 없습니다"라는 메시지가 나타납니다. 도와주세요. 여기에 ID를 내 코드ajax 및 servlet을 사용하여 파일 업로드

index.jsp를 지금

<html> 
<head> 
<title>Ajax File Upload</title> 
<script type="text/javascript" src="jquery-1.4.2.min.js"></script> 

     <script type="text/javascript"> 
      $(document).ready(function(){ 
       $("#login_frm").submit(function(){ 

        //remove previous class and add new "myinfo" class 
        $("#msgbox").removeClass().addClass('myinfo').text('Validating Your Form ').fadeIn(1000); 


        this.timer = setTimeout(function() { 
         $.ajax({ 
          url: 'uploads', 
          enctype: 'multipart/form-data', 
          data: 'filename='+ $('#file').val(), 
          type: 'post',        
          success: function(msg){ 
           $("#msgbox").removeClass().addClass('myinfo').text(msg).fadeIn(1000); 
          } 

         }); 
        }, 200); 
        return false; 
       }); 

      }); 

     </script> 
<link href="style.css" rel="stylesheet" type="text/css" /> 
<link href="login_style.css" rel="stylesheet" type="text/css" /> 
</head> 
<body> 
    <form name="login_frm" enctype="multipart/form-data" id="login_frm" action="" method="post"> 
      <div id="login_box"> 
       <div id="login_header">&nbsp;&nbsp;&nbsp;Citizen Login </div> 
       <div id="form_val" style="background-color:black; height:80px;"> 
        <div class="label">Upload Pic :</div> 
        <div class="control"><input type="file" name="file" id="file"/></div> 
        <div id="msgbox"></div> 
       </div> 
        <div id="login_footer"> 
          <label> 
         <input type="submit" name="upload" id="upload" value="Upload" class="send_button" /> 
        </label> 
       </div> 
      </div> 
     </form> 
</body> 
</html> 

이 내 서블릿이다

uploads.java

package fileupload; 
import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.util.List; 
import java.util.Iterator; 
import java.io.File; 
import java.util.Random; 
import org.apache.commons.fileupload.servlet.ServletFileUpload; 
import org.apache.commons.fileupload.disk.DiskFileItemFactory; 
import org.apache.commons.fileupload.*; 
import java.util.regex.*; 


public class uploads extends HttpServlet { 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     try { 
boolean isMultipart = ServletFileUpload.isMultipartContent(request); 
if (!isMultipart) { 
out.println("File Not Uploaded"); 
} else { 
FileItemFactory factory = new DiskFileItemFactory(); 
ServletFileUpload upload = new ServletFileUpload(factory); 
List items = null; 
try { 
items = upload.parseRequest(request); 
//out.println("items: "+items); 
} catch (FileUploadException e) { 
e.printStackTrace(); 
} 
FileItem file = (FileItem)items.get(0); 
//out.print(file); 
Iterator itr = items.iterator(); 
int noFile=0; 
while (itr.hasNext()) { 

FileItem item = (FileItem) itr.next(); 
if (item.isFormField()){ 

String name = item.getFieldName(); 
String value = item.getString(); 
} else { 
try { 

String itemName = item.getName(); 
Random generator = new Random(); 
int r = Math.abs(generator.nextInt()); 
String reg = "[.*]"; 
String replacingtext = ""; 
Pattern pattern = Pattern.compile(reg); 
Matcher matcher = pattern.matcher(itemName); 
StringBuffer buffer = new StringBuffer(); 
while (matcher.find()) { 
matcher.appendReplacement(buffer, replacingtext); 
} 
int IndexOf = itemName.indexOf("."); 
String domainName = itemName.substring(IndexOf); 
String finalimage = buffer.toString()+"_"+r+domainName; 
File savedFile = new File("C:/tmp/"+"images\\"+finalimage); 
item.write(savedFile); 
} catch (Exception e) { 
e.printStackTrace(); 
} 
} 
} 
out.print(noFile+" File(s) Uploaded !!"); 
} 
     } finally { 
      out.close(); 
     } 
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    /** 
    * Returns a short description of the servlet. 
    * @return a String containing servlet description 
    */ 
    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    }// </editor-fold> 

} 

같은 코드가 아약스없이 완벽하게 실행 .

+0

는) 메시지 (클라이언트 또는 서버의 파일을 찾을 수 없습니다 '? – home

+0

업로드 버튼을 클릭하면 이미지 파일을 선택합니다. 클라이언트 쪽을 의미합니다. –

+0

아마도 ..이 오류가 발생합니다. 왜냐하면 파일을 서블릿 페이지로 보내지 않기 때문입니다. 어디서, 조건을 부여했습니다 if (! isMultipart) { out.println ("File Not Uploaded"); } –

답변