用Spring實現文件上傳(CommonsMultipartFile)!


spring中的文件上傳實際比較容易
1、頁面中
<html>
   <body>
   <form action="upload.do" method="post"   enctype="multipart/form-data">
    <input type="file"   name="uploadfile" />
    <input type="submit" value="提交" />
   </form>
   </body>
</html>
2、修改spring的配置文件添加
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
         <property name="maxUploadSize">
             <value>1048576</value>
         </property>
     </bean>
其中class部分可以選用CommonsMutipartResolver或CosMultipartResolver,但是別忘記添加相應的jar文件
3、對應的控制器和實體類中無需添加uploadfile文件
4、對應的Controller

package cn.com.babe;

import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.validation.BindException;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

public class UploadAction extends SimpleFormController {
private String viewsucc;
private String viewfalse;

public String getViewsucc() {
   return viewsucc;
}

public void setViewsucc(String viewsucc) {
   this.viewsucc = viewsucc;
}

public String getViewfalse() {
   return viewfalse;
}

public void setViewfalse(String viewfalse) {
   this.viewfalse = viewfalse;
}


protected ModelAndView onSubmit(HttpServletRequest request,
    HttpServletResponse response, Object command, BindException errors)
    throws Exception {
   String view = getViewfalse();
   MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
   CommonsMultipartFile orginalFile = (CommonsMultipartFile) multipartRequest
     .getFile("uploadfile");// 表單中對應的文件名;
   if (orginalFile != null && !orginalFile.isEmpty()) {// 如果有文章中帶有附件
    String filename = orginalFile.getOriginalFilename();
    DataOutputStream out = new DataOutputStream(new FileOutputStream(
      "c:/" + filename));// 存放文件的絕對路徑
    InputStream is = null;// 附件輸入流
    try {
     is = orginalFile.getInputStream();
     byte[] b=new byte[is.available()];
     is.read(b);
     out.write(b);
    } catch (IOException exception) {
     exception.printStackTrace();
    } finally {
     if (is != null) {
      is.close();
     }
     if (out != null) {
      out.close();
     }
    }
    view=getViewsucc();
   }
   return new ModelAndView(view, null);
}

}

通過上面的方式就可以文件上傳了。我做的只是把所有的上傳文件拷貝到c盤根目錄下,並且設置了上傳文件最大大小為1mb。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM