茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    jquery.form.js框架實現(xiàn)文件上傳功能案例解析(springmvc)
    來源:易賢網(wǎng) 閱讀:1684 次 日期:2016-06-20 17:14:29
    溫馨提示:易賢網(wǎng)小編為您整理了“jquery.form.js框架實現(xiàn)文件上傳功能案例解析(springmvc)”,方便廣大網(wǎng)友查閱!

    這篇文章主要為大家詳細介紹了jquery.form.js/springmvc文件上傳功能的實現(xiàn)步驟,使用的技術(shù)有jquery.form.js框架, 以及springmvc框架,具有實用價值,感興趣的小伙伴們可以參考一下

    上一篇 Bootstrap自定義文件上傳下載樣式(http://www.jb51.net/article/85156.htm)已經(jīng)有一段時間了,一直在考慮怎么樣給大家提交一篇完美的邏輯處理功能。現(xiàn)在我結(jié)合自己的實際工作給大家分享一下。

    使用的技術(shù)有jquery.form.js框架, 以及springmvc框架。主要實現(xiàn)異步文件上傳的同時封裝對象,以及一些注意事項。

    功能本身是很簡單的,但是涉及到一些傳遞參數(shù)類型的問題。例如:jquery的ajax方法與jquery.form.js中的ajaxSubmit方法的參數(shù),具體細節(jié)將在下一篇博客中分享。

    重點: html表格三要素: action="fileUpload/fileUpload" method="post" enctype="multipart/form-data";

    1. 最簡單的表單直接提交

    html代碼:

    <body>

     <form action="fileUpload/fileUpload" method="post" enctype="multipart/form-data">

     <input type="text" name="password">

      <input type="file" name="file">

     <input type="text" name="username">

      <input type="submit" value="submit">

     </form>

     <button id="button">提交</button>

    </body>

    java代碼

    @Controller

    @RequestMapping("/fileUpload")

    public class FileUpload {

     @RequestMapping("/fileUpload")

     @ResponseBody

     public String FileUpload1(@RequestParam("file")MultipartFile file/*, @RequestParam("username")String username*/){

     System.out.println("------------------------------- "+ file.getSize());

     if(!file.isEmpty()){

      System.out.println("Process file: "+file.getOriginalFilename() );

      try {

      FileUtils.copyInputStreamToFile(file.getInputStream(), new File("c:\\temp\\imooc\\", System.currentTimeMillis()+ file.getOriginalFilename()));

      } catch (IOException e) {

      e.printStackTrace();

      }

     }

     return "NewFile";

     }

    }

    具體的springmvc配置,包括文件上傳的配置如下

    準備工作:

    需要把Jakarta Commons FileUpload及Jakarta Commons io的包放lib里。

    這邊的包是:

    commons-fileupload-1.1.1.jar

    commons-io-1.3.2.jar

    然后在spring-servlet.xml進行multipartResolver配置,不配置好上傳會不好用。

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 

       <property name="maxUploadSize"><value>100000</value></property> 

       <property name="defaultEncoding"><value>UTF-8</value></property> 

    </bean> 

    接下來就是頁面了:

    注意Form的寫法和文件上傳組件的寫法。

    <form action="uploadPosdetailFile.html" method="post" ENCTYPE="multipart/form-data">

    <div class="form" >

      <p>

       <span class="req"><input id="startDateTxt" name="startDateTxt" class="field size4" title="Enter the date" /></span>

       <label>Start Date: <span>(Date format:MM/dd/yyyy,eg:01/01/2014)</span></label>

      </p>

      <p>

       <span class="req"><input id="endDateTxt" name="endDateTxt" class="field size4" title="Enter the date" /></span>

       <label>End Date: <span>(Date format:MM/dd/yyyy,eg:12/25/2014)</span></label>

      </p>

      <p>

       <span class="req"><input type="file" name="uploadFileCtrl" class="field size4" title="Choose the file" /></span>

       <label>Upload file: <span>(click browse to choose)</span></label>

      </p>

    </div>

    <div class="buttons">

     <input id="queryBtn" type="Submit" class="button" value="Submit" />

    </div>

    </form>

    再在控制器里寫處理代碼,注意參數(shù)和頁面控件的對應(yīng)關(guān)系:

    @RequestMapping(value="/uploadPosdetailFile")

    public String uploadPosdetailFile(@RequestParam("startDateTxt") String startDateTxt, 

            @RequestParam("endDateTxt") String endDateTxt,

            @RequestParam("uploadFileCtrl") MultipartFile file,HttpServletRequest request,HttpServletResponse response){

     try {

      System.out.println("@@@@@@@@@1.startDateTxt="+startDateTxt);

      System.out.println("@@@@@@@@@2.endDateTxt="+endDateTxt);

      System.out.println("@@@@@@@@@3.file="+file.getOriginalFilename());// 得到上傳文件的文件名

      if(file.isEmpty()==false){

       InputStream is=file.getInputStream();

       InputStreamReader isr = new InputStreamReader(is);

        BufferedReader br=new BufferedReader(isr); 

        String s;

        while((s=br.readLine())!=null ){

         System.out.println(s);

        }

       br.close();

       isr.close();

       is.close();

      }

      return "/pages/posdetail/uploadposdetailresult/index.jsp";

     } catch (Exception e) {

      e.printStackTrace();

      logger.error(e);

      request.setAttribute("error", e.getClass());

      request.setAttribute("reason", e.getMessage());

      StackTraceElement[] arr=e.getStackTrace();

      request.setAttribute("stackTraceElements", arr);

      return "pages/error/index.jsp";

     }

    }

    2. 使用jquery.form.js的ajaxSubmit方法

    html代碼以及java代碼保持不變,給id=button的按鈕添加事件

    $("#button").click(function(){

      var hideForm = $('form'); 

      var options = { 

       dataType : "json", 

       /*data: {'file': $("input[type=file]").val(), "username": '123', password: "123"},*/

       beforeSubmit : function() { 

        alert("正在上傳"); 

       }, 

       success : function(result) { 

        alert('成功上傳!'); 

       }, 

       error : function(result) { 

       } 

      }; 

      hideForm.ajaxSubmit(options); 

     });

    3. 在后臺使用一個User對象接收username和password。

    <form action="fileUpload/fileUpload" method="post" enctype="multipart/form-data">

      <input type="file" name="file">

      <input type="submit" value="submit">

    </form>

    有可能你會按照下面的步驟做: 封裝表單數(shù)據(jù)作為一個json對象, 給上面的js代碼添加data  

    data:{'file': $("input[type=file]").val(), 'user':{"username": '123', password: "123"}}

    在此處其實是畫蛇添足,這種情況下發(fā)送的請求的詳細情況如圖:

    名單

    此時頁面會報錯415。

    ----------------------------------------------------------------

    最合理的代碼應(yīng)該是:html代碼與1相同, js代碼與2相同, java代碼

    public String FileUpload1(@RequestParam("file")MultipartFile file, User user){

    而且User、前面不能加@RequestBody。

    以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助

    更多信息請查看網(wǎng)絡(luò)編程

    2026上岸·考公考編培訓(xùn)報班

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)