中文JAVA技術平等自由協作創造

          Java專題文章博客和開源

          常用鏈接

          統計

          最新評論

          java實現web文件無刷新上傳

            最近在做如何實現文件上傳的相關工作,查閱了很多資料,發現網上寫的都不是很直觀,且調試復雜,經實驗成功。
           
             把form的target設為頁面里一個看不見的iframe,這樣上傳時候就不會刷新頁面了,比如 :托福答案
           
             <form action="uploadFile" method="post" enctype="multipart/form-data" target="upload">
           
             <input id="uploadfile" name="uploadfile" type="file"/><button>上傳至FTP</button>
           
             </form>
           
             <iframe name="upload" style="display:none"></iframe>
           
             后臺方法代碼如下:
           
             public void uploadFile(HttpServletRequest request) throws IOException {
           
             //創建文件處理工廠,用于生成FileItem對象
           
             DiskFileItemFactory difactory = new DiskFileItemFactory();
           
             //設置緩存大小,如果上傳問價超過緩存大小,將使用臨時目錄作為緩存托福改分
           
             difactory.setSizeThreshold(1024*1024);
           
             //設置處理工廠緩存的臨時目錄,此目錄下的文件需要手動刪除
           
             // String realdir = request.getContextPath();//當前應用程序根路徑托福答案
           
             // System.out.println("realdir------------------"+realdir);
           
             String dir = "D:/fileupload";
           
             File filedir = new File(dir+"filetemp");
           
             if(!filedir.exists()){
           
             filedir.mkdir();
           
             }
           
             difactory.setRepository(filedir);
           
             //設置文件實際保存的目錄
           
             String userdir = dir + "files";
           
             File fudir = new File(userdir);
           
             if(!fudir.exists()){
           
             fudir.mkdir();
           
             }
           
             //創建request的解析器,它會將數據封裝到FileItem對象中
           
             ServletFileUpload sfu = new ServletFileUpload(difactory);
           
             //解析保存在request中的數據并返回list集合
           
             List list = null;
           
             try{
           
             list = sfu.parseRequest(request);
           
             }catch(FileUploadException e){
           
             e.printStackTrace();
           
             }
           
             //遍歷list集合,去除每一個輸入項的FileItem對象,并分別獲取數據
           
             for(Iterator it = list.iterator();it.hasNext();){
           
             FileItem fi = (FileItem)it.next();
           
             if(fi.isFormField()){
           
             System.out.println("FileFieldName"+fi.getFieldName());
           
             System.out.println("FileString--->"+fi.getString());
           
             }else{
           
             //由于客戶端項服務器發送的文件時客戶端的全路徑,我們只需文件
           
             String filename = fi.getName();
           
             // int index = filename.lastIndexOf("\\");
           
             // if(index != -1){
           
             // filename = filename.substring(index+1);
           
             //向服務器寫出文件
           
             InputStream in = fi.getInputStream();
           
             FileOutputStream fos = new FileOutputStream(fudir+"/"+filename);
           
             byte[] buf = new byte[1024];
           
             int len = -1;
           
             while((len = in.read(buf))!=-1){
           
             fos.write(buf,0,len);
           
             }
           
             //關閉流
           
             if(in!=null){
           
             try{
           
             in.close();
           
             }finally{
           
             if(fos!=null){
           
             fos.close();
           
             }
           
             }
           
             }
           
             // }
           
             }
           
             }
           
             }
           
           

          posted on 2013-09-07 11:20 好不容易 閱讀(148) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          PK10開獎 PK10開獎
          主站蜘蛛池模板: 彭泽县| 云浮市| 灌阳县| 清远市| 独山县| 凤山县| 洪洞县| 高密市| 银川市| 七台河市| 巩留县| 宜丰县| 大埔县| 忻州市| 延吉市| 青海省| 桐柏县| 固始县| 福安市| 蒙城县| 九台市| 连山| 固原市| 竹溪县| 靖江市| 周至县| 琼海市| 鄂尔多斯市| 鄢陵县| 宜丰县| 彭水| 南靖县| 白玉县| 韩城市| 彰化市| 东阳市| 余干县| 梧州市| 汝南县| 鲁山县| 松滋市|