2017-06-12 23 views
-1

ローカルマシンからイメージファイルを読み込んで、Javaクラスに渡します。出来ますか??それともjavaサーブレットでのみ行うことができますか?Javaクラスを使用してjspからファイル入力を読み込みます。

<form method="post" action="TestController" encType="multipart/form-data"> 
<table> 
<tr> 
<td><input type="file" name="UPLOAD" onchange="readURL(this);" style="width:150px;" /></td> 
<td><input type="image" id="img" src="#" alt="your image" name="img" style="width:150px;"/></td></tr> 
</table> 
<input type="hidden" name="module" value="visitor_add"> 
<center><input type="submit" value="Save and Proceed" /></center> 
</form> 

<script> 
function readURL(input) { 
if (input.files && input.files[0]) { 
    var reader = new FileReader(); 

    reader.onload = function (e) { 
     $('#img') 
      .attr('src', e.target.result) 
      .width(150) 
      .height(100); 
    }; 

    reader.readAsDataURL(input.files[0]); 
} 
} 
</script> 

これは入力ファイルを読み取るためのjspコードです。サービスメソッドで自分のJavaコードをどのように進めるのですか?

答えて

0

はい、jspからデータを読み込み、javaクラス/ Servletに渡すことができます。ここで、uはjspページからアップロードされたファイルを読み取ることができます。ここで

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{ 
 // gets absolute path of the web application 
String appPath = request.getServletContext().getRealPath(""); 
// constructs path of the directory to save uploaded file 
String savePath = appPath + File.separator + SAVE_DIR; 

// creates the save directory if it does not exists 
File fileSaveDir = new File(savePath); 
if (!fileSaveDir.exists()) 
{ 
    fileSaveDir.mkdir(); 
} 

for (Part part : request.getParts()) 
{ 
      String fileName = extractFileName(part); 
     // refines the fileName in case it is an absolute path 
     fileName = new File(fileName).getName(); 
     part.write(savePath + File.separator + fileName); 
} 

request.setAttribute("message", "Upload has been done successfully!"); 
getServletContext().getRequestDispatcher("/message.jsp").forward(request, response); 

} 
/** 
* Extracts file name from HTTP header content-disposition 
*/ 
private String extractFileName(Part part) 
{ 
    String contentDisp = part.getHeader("content-disposition"); 
    String[] items = contentDisp.split(";"); 
    for (String s : items) { 
    if (s.trim().startsWith("filename")) { 
    return s.substring(s.indexOf("=") + 2, s.length()-1); 
} 
} 
    return ""; 
} 
...など、複数のファイルや画像を読み込み、次のサービスメソッドであります
関連する問題