Java中附件上傳


1、因為上傳文件會使用到MultipartHttpServletRequest對象,我們需要在Springmvc配置文件中配置一個解析器

復制代碼
    <!--為了使用到spring為我們提供的,MultipartHttpServletRequest對象,我們需要配置一個解析器 -->
       <!-- 而且對於Bean組件要想正常運行,必須配置一個id屬性 -->
       <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
         <!-- 請求編碼方式 -->
         <property name="defaultEncoding" value="UTF-8"/>
         <!-- 上傳文件大小 -->
         <property name="maxUploadSize" value="10000000"/>
         <!-- 緩沖區大小 -->
         <property name="maxInMemorySize" value="1024"/>
         
       </bean>
復制代碼

2、前端jsp代碼

<div>
     <span>上傳附件:</span><input type="file" id="accessory1"  name="accessory1" onchange="checkFile(this)" />
     <font size="2" color="red">注意:上傳文件大小不能超過10M</font>
</div>
復制代碼
      //上傳文件校驗
         function checkFile(file){
             var flag = getFilesize(file);
             if(!flag){
                 var fileInput = $("#accessory1");  
          //驗證不通過,清空input框 fileInput.replaceWith(fileInput.clone()); } } var fileSize = 0; //文件大小默認為0 function getFilesize(file) { /*(1)判斷文件后綴類型*/ var strs = new Array(); //定義一數組 var pic1 = $(file).val(); //獲取input框的值,文件路徑 strs = pic1.split('.'); //分成數組存儲 var suffix = strs[strs.length - 1]; //獲取文件后綴 if (suffix != 'pdf' && suffix != 'docx' && suffix != 'doc'&& suffix != 'txt') { alert("僅能上傳擴展名為pdf、docx、doc、text的文件!"); return false; } /*(2)獲取文件大小,以Kb為單位*/ fileSize = file.files[0].size / 1024; if (fileSize > 10000) { alert("您選擇的文件太大,請選擇小於10M的文件!"); return false; } return true; }
復制代碼
           // 表單提交時執行的方法
                var form = new FormData();
                form.append("accessory1", $('#accessory1')[0].files[0]);

復制代碼
//后端請求處理
   @RequestMapping(value="/addGg",method=RequestMethod.POST) @ResponseBody public boolean addGg(MultipartFile accessory1){//發布公告的同時是否有附件上傳 if (accessory1 != null ) {
       logger.info("<--帶有附件公告發布開始-->"); InputStream is = null; try { is = accessory1.getInputStream(); byte[] b = new byte[is.available()]; is.read(b); jjkjGggl.setAccContent(b); } catch (IOException e) { logger.info("<--附件讀取異常!-->:"+e); throw new RuntimeException("附件讀取異常!"); } finally{ try { is.close(); } catch (IOException e) { logger.info("<--附件讀取釋放資源異常!-->:"+e); throw new RuntimeException("附件讀取釋放資源異常!"); } } }return false; }


免責聲明!

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



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