1
添付ファイルとともにデータをアップロードしようとするとコントローラポストメソッドがあります。正常に動作します。 しかし、ファイルが添付されていないときの処理方法とデータの読み方を知りたい。CommonsMultipartFile Controllerにファイルを添付せずにフォームデータを送信する方法は?
@RequestMapping(value="saveimage",method=RequestMethod.POST)
public ModelAndView saveimage(@RequestParam CommonsMultipartFile file,HttpSession session,HttpServletRequest request,HttpServletResponse response) throws Exception
{
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(THRESHOLD_SIZE);
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
ServletFileUpload upload = new ServletFileUpload(factory);
ServletContext context = session.getServletContext();
String uploadPath = context.getRealPath(UPLOAD_DIRECTORY);
System.out.println(uploadPath);
System.out.println(file.getOriginalFilename());
byte[] bytes = file.getBytes();
BufferedOutputStream stream =new BufferedOutputStream(new FileOutputStream(new File(uploadPath + File.separator + file.getOriginalFilename())));
stream.write(bytes);
stream.flush();
stream.close();
EmpFileBean e=new EmpFileBean();
e.setFile(file.getOriginalFilename());
e.setTextdata(request.getParameter("textdata"));
dao.saveImage(e);
request.setAttribute("img_name", e.getFile());
return new ModelAndView("uploadform","filesuccess","File successfully saved!");
}
私のJSPは次のようになります:あなたはマルチパートファイルアップロード用の@RequestParam
を使用する場合は、フィールドが空の場合
<form:form method="post" action="saveimage" attribute="EmpFileBean"
enctype="multipart/form-data">
<p><label for="image">Choose Image</label></p>
<p><input name="file" id="fileToUpload" type="file" path="file"/></p>
<p><label for="textdata">Enter User Name</label></p>
<p><input name="textdata" id="textdata" type="text" path="textdata"/></p>
<%
if(request.getAttribute("img_name")!=null)
{
%>
<img alt="" src="images/<%=request.getAttribute("img_name")%>">
<%} %>
<p><input type="submit" value="Upload"></p>
</form:form>