亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用ajaxfileupload.js實現(xiàn)上傳文件功能

 更新時間:2016年08月13日 15:06:38   作者:廖為鵬  
這篇文章主要為大家詳細介紹了使用ajaxfileupload.js實現(xiàn)上傳文件功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一直以來上傳文件都是使用form表單上傳文件,也看到過有人使用js上傳文件,不過看起來蠻簡單的也就沒有怎么去理會。今天突然要使用這種方式上傳文件,期間還遇到點問題。因此就記錄下來,方便以后遇到這樣的問題可以查看。

首先就是引入js和ajaxfileupload的文件,這個不需要多說。

然后就是ajax請求后臺地址。代碼如下: 

 <div class="btn-file-box pos-rel">
   <input type="file" id="upload" name="upload" style="font-size: 0;opacity: 0;width: 100%;height: 100%;position: absolute;left: 0;top: 0;"/>
 <span class="btn ">選擇文件</span>
 </div> 


$("#upload").on("change",function(){
    $.ajaxFileUpload({
      url : '/test/user/imgUpload',//后臺請求地址
      type: 'post',//請求方式 當要提交自定義參數(shù)時,這個參數(shù)要設置成post
      secureuri : false,//是否啟用安全提交,默認為false。 
      fileElementId : 'upload',// 需要上傳的文件域的ID,即<input type="file">的ID。
      dataType : 'json',//服務器返回的數(shù)據(jù)類型??梢詾閤ml,script,json,html。如果不填寫,jQuery會自動判斷。如果json返回的帶pre,這里修改為json即可解決。
      success : function (json, status) {//提交成功后自動執(zhí)行的處理函數(shù),參數(shù)data就是服務器返回的數(shù)據(jù)。
         alert(json.retMsg);
      },
      error : function (json, status, e) {//提交失敗自動執(zhí)行的處理函數(shù)。
        
      }
    });
  }); 

前臺代碼完成就開始開發(fā)后臺代碼了。

package com.roc.test;import java.io.File;import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import net.sf.json.JSONObject;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.jboss.resteasy.annotations.providers.jaxb.json.BadgerFish;
import org.springframework.stereotype.Controller;import net.sf.json.JSONObject;/**
 * 上傳文件
 * @author liaowp
 *
 */
@Controller
@Path("/user")
public class UploadImg {
  
  @Path("/imgUpload")
  @POST
  @Produces("application/json; charset=utf-8")
  @Consumes(MediaType.MULTIPART_FORM_DATA ) 
  @BadgerFish
  public JSONObject upload(@QueryParam("orderId") String orderId,@Context HttpServletRequest request,@Context HttpServletResponse response) {
    JSONObject jsonobj = new JSONObject();
    String file_path=request.getSession().getServletContext().getRealPath("/")+File.separator+"corpfile"+File.separator;//文件存儲路徑  
    String upload_file_path="";
    File file =new File(file_path);  
    if(!file.exists() && !file.isDirectory()){ //如果文件夾不存在則創(chuàng)建    
       file.mkdir();
       upload_file_path=file_path;
    }else{
       upload_file_path=file_path;
    }
    DiskFileItemFactory factory = new DiskFileItemFactory(); // 設置工廠 
    factory.setRepository(new File(file_path));// 設置文件存儲位置
    factory.setSizeThreshold(2048 * 1024);// 設置大小,如果文件小于設置大小的話,放入內(nèi)存中,如果大于的話則放入磁盤中
    ServletFileUpload upload = new ServletFileUpload(factory);
    upload.setHeaderEncoding("utf-8");// 這里就是中文文件名處理的代碼,其實只有一行
    String fileName = "";
    List<FileItem> list;
    JSONObject jsonobj = new JSONObject();
    try {
      list = upload.parseRequest(request);
      for (FileItem item : list) {
        if (item.isFormField()) {
          String name = item.getFieldName();
          String value = item.getString("utf-8");
        } else {
          String name = item.getFieldName();
          String value = item.getName();
          fileName =name + ".jpg";
          if (item.getSize() > 10485760) {//您好,上傳文件要小于10M!
            jsonobj.put("retCode","100");
            jsonobj.put("retMsg","您好,上傳文件要小于10M!"):
          } else {//上傳成功
            item.write(new File(upload_file_path, fileName));
            System.out.println(File.separator + "corpfile" + File.separator + fileName);
            jsonobj.put("retCode","0");
            jsonobj.put("retMsg","您好,上傳成功!");
          }
        }
      }
    } catch (Exception e) {//上傳失敗
      e.printStackTrace();
      jsonobj.put("retCode","9999");       jsonobj.put("retMsg","您好,文件上傳失敗,");
    }
    return jsonobj;
  }

}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 在IE瀏覽器中resize事件執(zhí)行多次的解決方法

    在IE瀏覽器中resize事件執(zhí)行多次的解決方法

    resize事件是在窗口或框架的大小被調(diào)整時發(fā)生,包括最小化、最大化。在IE和Opera瀏覽器中,只要窗口邊框被拖動,就觸發(fā)該事件,在Mozilla瀏覽器中,resize 事件只是在停止改變窗口大小時才會觸發(fā)。
    2011-07-07
  • jquery實現(xiàn)保存已選用戶

    jquery實現(xiàn)保存已選用戶

    這篇文章主要介紹了jquery實現(xiàn)保存已選用戶,需要的朋友可以參考下
    2014-07-07
  • jquery的 filter()方法使用教程

    jquery的 filter()方法使用教程

    filter() 方法返回符合一定條件的元素。該方法讓您規(guī)定一個條件。不符合條件的元素將從選擇中移除,符合條件的元素將被返回。這篇文章主要介紹了 jquery的 filter()方法使用,需要的朋友可以參考下
    2018-03-03
  • jquery對元素拖動排序示例

    jquery對元素拖動排序示例

    對元素進行拖動排序的實現(xiàn)方法有很多,在本文為大家介紹下使用jquery來完成這個工作,希望對大家有所幫助
    2014-01-01
  • jquery 新手學習常見問題解決方法

    jquery 新手學習常見問題解決方法

    jquery 新手入門參考教程。
    2010-04-04
  • JQuery判斷正整數(shù)整理小結(jQuery 文本框中只能輸入正整數(shù))

    JQuery判斷正整數(shù)整理小結(jQuery 文本框中只能輸入正整數(shù))

    這篇文章主要介紹了JQuery判斷正整數(shù),附上詳細的代碼供大家查看具體的方法,需要的朋友可以參考下
    2017-08-08
  • jQuery插件zTree實現(xiàn)的基本樹與節(jié)點獲取操作示例

    jQuery插件zTree實現(xiàn)的基本樹與節(jié)點獲取操作示例

    這篇文章主要介紹了jQuery插件zTree實現(xiàn)的基本樹與節(jié)點獲取操作,結合實例形式分析了jQuery樹形插件zTree構造基本樹與針對節(jié)點的獲取操作相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-03-03
  • jQuery簡易時光軸實現(xiàn)方法示例

    jQuery簡易時光軸實現(xiàn)方法示例

    這篇文章主要介紹了jQuery簡易時光軸實現(xiàn)方法,可實現(xiàn)點擊底部鏈接動態(tài)加載內(nèi)容的功能,涉及jQuery響應鼠標事件動態(tài)操作頁面元素屬性的相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-03-03
  • jQuery同步提交示例代碼

    jQuery同步提交示例代碼

    這篇文章主要介紹了jQuery同步提交實現(xiàn)方法,實例分析了jQuery基于ajax實現(xiàn)同步提交的具體技巧,以及jQuery版本更新的使用注意事項,需要的朋友可以參考下
    2015-12-12
  • jQuery Mobile漏洞會有跨站腳本攻擊風險

    jQuery Mobile漏洞會有跨站腳本攻擊風險

    人們經(jīng)常將跨站腳本攻擊(Cross Site Scripting)縮寫為CSS,但這會與層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。因此有人將跨站腳本攻擊縮寫為XSS。
    2017-02-02

最新評論