springmvc 文件上传、下载、预览。以二进制形式存放到数据库。
    数据库中的关于传入附件的字段我写了2个:一个存放内容accessory,一个存放文件的后缀filetype
上传:首先需要2个必须的jar:
commons.io-1.4.0.jar
commons.fileupload-1.2.0.jar
XXX-servlet.xml中写入上传拦截:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolve">  
      <property name="maxUploadSize" value="100000" />  
</bean> 
jsp页面:<form method="POST" action="提交地址" name="frm" enctype="multipart/form-data">   
       <input type="file" name="accessory"/><br>  
        <input type="submit" onclick="return checkacc();"/><br>  
</form>
<!--如果需要验证传入的文件的类型,可以通过js验证,我这个是在提交的时候验证的-->
<!--
function checkacc(){
    var postfix = frm.accessory.value.substring(frm.accessory.value.lastIndexOf(".")+1); //获得选择的上传文件的后缀名的正则表达式  
     if(postfix!=""){
          if(!(postfix == "jpg"||postfix == "pdf"))   
          {   
	      alert('文件类型不正确,请选择.jpg或者.pdf文件 !');   
	      document.getElementById('accessory').value="";
	      document.getElementById('accessory').focus();
	      return false;   
          }  
     } 
}
-->
注:在以前用servlet写的文件上传,加入enctype="multipart/form-data"这个字段,会造成获取不到form内其他字段的值,但在springmvc中不会出现这个问题。
java Controller类:public ModelAndView addSaleStock(HttpServletRequest request,HttpServletResponse response) throws Exception {
	       MultipartHttpServletRequest multipartRequest =(MultipartHttpServletRequest) request;
	       MultipartFile file = multipartRequest.getFile("accessory");
	       byte[] inputData = null;
	       String fileType="";
	       if(file!=null){
	             inputData = inputStream2Byte(file.getInputStream());
	             String s=file.getOriginalFilename();
	             fileType=s.substring(s.lastIndexOf(".")+1);
                }        
                 //数据库中表的对象类(model),通俗说就是hibernate中的po
                 ValidRegstock validRegstock = new ValidRegstock();
                 validRegstock.setInputData(inputData);
                 validRegstock.setFiletype(fileType);
                      try {
                             //去看service类
		    &nbs