好用的java进度条上传文件

需要组件jquery.uploadify.v2.1.4.js,上传的核心文件,支持上传各种文件

<link rel="stylesheet" type="text/css" href="common/css/uploadify.css"/>

<script type="text/javascript"  src="common/js/jquery-1.6.js"></script>

<script type="text/javascript"  src="common/js/swfobject.js"></script>

<script type="text/javascript"  src="common/js/jquery.uploadify.v2.1.4.js"></script>

<script type="text/javascript">
    jQuery.noConflict();
    var $Upl = jQuery;
    $Upl(document).ready(function() {
        $Upl("#uploadify").uploadify({
            'uploader'       : 'common/images/uploadify.swf',
            'script'         : '/CYJS/servlet/UploadFileServlet', //提交后台上传servlet或者action
            'cancelImg'      : 'common/images/cancel.png',
            'folder'         : 'upload',
            'queueID'        : 'custom-queue',

          //'fileDesc' : '支持格式:doc、pdf、txt', //支持的格式
          //'fileExt' : '*.doc;*.pdf;*.txt', //不支持的格式
            'auto'           : true,
            'multi'          : false,
            'removeCompleted': false,
            'sizeLimit'      : 10485799,
            'simUploadLimit' : 1,
            'buttonText'     : '添加',
            'onCancel'   : function(event,queueId,fileObj,data) {//取消单个事件
            $Upl("#fileSize").val(data.allBytesTotal);
            },
            'onSelectOnce'   : function(event,data) {//选择文件事件
            $Upl("#fileSize").val(data.allBytesTotal);
            },
          'onComplete'  : function(event,queueId,fileObj,response,data) {//完成一次上传事件
            var filePN = response.split(";");//取回后台传来的值
            if(filePN[4]!=""){
             $Upl("#uploadify" +queueId).find(".hcicsContent").text(filePN[4]);
           }
        addcontractelectronfile('#uploadify'+queueId,filePN[0],filePN[1],filePN[2],filePN[3],filePN[4]);
         }, 


      'onAllComplete'  : function(event,data) {//完成所有文件上传事件
           $Upl("#fileSize").val("0");//所有上传完成重置剩余文件大小
      }


      });
    });
</script>
 <form id="addressForm" name="addressForm" method="post" action="" >
   <table class="stable tp0" cellSpacing="0" cellPadding="0"  border="0" >
     <tr>
        
         <td width="15%" align="left" colspan="4" style="padding-left:158px" >
             <input type="hidden" id="fileSize" value="0"/>
            <div id="custom-queue"></div>
             附件:<input id="uploadify" type="file" name="Filedata"  />
           
         </td> 

    </tr>

 </table>
  </form>

java后台文件

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

try {
String temp=request.getParameter("folder");
//System.out.println("temp==="+temp);
//上传文件的临时目录
String tempDir=request.getSession().getServletContext().getRealPath("uploads");
File tFile=new File(tempDir);
if(!tFile.exists())
tFile.mkdir();
//创建缓冲区
DiskFileItemFactory factory=new DiskFileItemFactory();

   //设置缓冲区大小 1*1024*1024 设置1Mb
factory.setSizeThreshold(1*1024*1024);
//设置缓冲临时目录
factory.setRepository(new File(tempDir));
       

ServletFileUpload upload=new ServletFileUpload(factory); 
//设置编码
upload.setHeaderEncoding("UTF-8"); 
response.setContentType("text/html;charset=utf-8");
//设置文件最大值,这里设置5Mb,5*1024*1024;
upload.setSizeMax(5*1024*1024);
FileItemIterator fileItem=upload.getItemIterator(request); //得到所有的文件
while(fileItem.hasNext()){
FileItemStream fi= fileItem.next(); //获得文件流
if(!fi.isFormField()&&fi.getName().length()>0){ //过滤非文件域
String fileName=fi.getName(); //获取文件名称
String fName=tempDir+"\\"+fileName; //文件最终存放目录 
File file=new File(fName);
FileOutputStream out=new FileOutputStream(file);
out.write(fi.toString().getBytes());
out.flush();
out.close();
}

}
Random r = new Random(10);
response.getWriter().write(""+r.nextInt());
} catch (Exception e) {
    System.out.println(e.getMessage());
}
 
  
}



protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request,response); //默认调用POST
}



你可能感兴趣的:(java,文件上传,进度条)