`

uploadify 上传文件

    博客分类:
  • java
 
阅读更多

js:

<script type="text/javascript" src="<%=path%>/js/jquery/jquery.uploadify.js?f=<%=System.currentTimeMillis()%>"></script>
 <link type="text/css" rel="stylesheet" href="<%=path%>/css/uploadify/uploadify.css" />

<script type="text/javascript">

$(function() {
                $('#file_upload').uploadify({
                    'uploader' : '<%=path%>/upload/FileUpload',
                    'swf'      : 'uploadify.swf',
                    'auto' : true, 
                    //'requeueErrors' : false,
                    'fileTypeDesc' : 'apk',
                    'fileTypeExts' : '*.apk',
                    'buttonText' : '浏览',
                    'queueID': 'fileQueue',
                    'height'   : 20,
                    'width'    : 70,
                    //'removeCompleted':false,
                    'removeTimeout' : 0.01,
                    //'queueSizeLimit':1,
                    //'uploadLimit' : 1,
                    //'method':'post',
                    'multi':false,
                    'onDialogClose'  : function(queueData) {
                        $('#file_upload').uploadify('disable', true);
                        $('#apkname').hide();
                        $('#fileQueue').show();
                    },
                    'onUploadComplete' : function(file) {
                        $('#file_upload').uploadify('disable', false);
                    },
                    'onUploadSuccess' : function(file, data, response) {
                        //alert('文件 ' + file.name + ' 上传成功.详细信息: ' + response + ':' + data);
                        if(response){
                            $('#apkname').val(file.name);
                            $('#apkmd5').val(data);
                            $('#fileQueue').hide();
                            $('#apkname').show();
                            $('#apknameERR').hide();
                        }
                    },
                    'onCancel' : function(file) {
                        $('#apkname').val("");
                        $('#apkmd5').val("");
                        $('#fileQueue').hide();
                        $('#apkname').show();
                    }
                });
            });

</script>

 

body:

<input type="file" name="file_upload" id="file_upload" />

 

 

servlet:

package upload;

import java.io.File; 
import java.io.FileInputStream;
import java.io.IOException; 
import java.io.InputStream;
import java.io.PrintWriter; 
import java.util.Iterator; 
import java.util.List; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import org.apache.commons.fileupload.FileItem; 
import org.apache.commons.fileupload.FileUploadException; 
import org.apache.commons.fileupload.disk.DiskFileItemFactory; 
import org.apache.commons.fileupload.servlet.ServletFileUpload; 

import util.FileUtil;
import util.UrlUtil;
import util.Util;
//@SuppressWarnings("serial") 
public class FileUpload extends HttpServlet  

     //定义文件上传的路径 
      public static String uploadPath = Util.getProPath("NEWDATA"); 
    //  private String uploadPath = "d://NEWDATA//"; 
//        private String uploadPath = "/home/NEWDATA/";   
       
      public static String apkpath = Util.getProPath("APKFILEPATH"); 
      public static String md5 = ""; 
      public static String dbsavePath =Util.getProPath("DBSAVEPATH"); 
      public static String apkname="";
     
        private int maxPostSize = 100*1024*1024; 
        public FileUpload()  
        { 
            super(); 
        } 
        public void destroy()  
        { 
            super.destroy();  
        } 
         
//        @SuppressWarnings("unchecked") 
        protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException 
        { 
           
            System.out.println("uploadPath:"+uploadPath);
            File tepmfile=new File(uploadPath);
            if (!tepmfile.exists()) {
                tepmfile.mkdirs();
            }
            System.out.println("apkpath:"+apkpath);
            File apkfile=new File(apkpath);
            if (!apkfile.exists()) {
                apkfile.mkdirs();
//                try {
//                    Thread.sleep(6*1000);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
            }
           
            String tempPath = "";
            String filename = "";
            System.out.println("Access!"); 
            response.setContentType("text/html;charset=UTF-8"); 
            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            PrintWriter out = response.getWriter(); 
//            out.print("已连接上!"); 
             
            //保存文件到服务器中 
            DiskFileItemFactory factory = new DiskFileItemFactory(); 
            factory.setSizeThreshold(4096); 
            ServletFileUpload upload = new ServletFileUpload(factory); 
            upload.setSizeMax(maxPostSize); 
            try 
            { 
                List fileItems = upload.parseRequest(request); 
                Iterator iter = fileItems.iterator(); 
                while(iter.hasNext()) 
                { 
                    FileItem item = (FileItem)iter.next(); 
                    if(!item.isFormField()) 
                    { 
                        filename = item.getName(); 
                        System.out.println(filename); 
                        apkname=filename;
                        try 
                        { 
                            tempPath = uploadPath+filename;
                            item.write(new File(tempPath)); 
                        } 
                        catch(Exception e) 
                        { 
                            e.printStackTrace(); 
                        } 
                    } 
                } 
//                out.print("11111");
               
                InputStream in = null;
                in = new FileInputStream(tempPath);
                String fileName = tempPath;
                String apkmd5 = Util.byteArray2HEXString(FileUtil.md5sum(in));
                md5=apkmd5;
                String savetoFile = apkpath+apkmd5+".apk";
                if(!FileUtil.FileExist(savetoFile)){
                    System.out.println("以字节为单位读取文件内容,一次读多个字节:");
                    // 一次读多个字节
                    byte[] tempbytes = new byte[1024*1024];
                    int byteread = 0;
                    int fileSeek = 0;
                    in = new FileInputStream(fileName);
                    FileUtil.showAvailableBytes(in);
                    // 读入多个字节到字节数组中,byteread为一次读入的字节数
                    while ((byteread = in.read(tempbytes)) != -1) {
                        FileUtil.writeFile(savetoFile, tempbytes, fileSeek,byteread);
                        fileSeek += tempbytes.length; //读取文件指针
                    }
                    if( FileUtil.FileSize(fileName) == FileUtil.FileSize(savetoFile+".tp") ){
                        FileUtil.FileRename(savetoFile+".tp", savetoFile);
                    }
                }else{
//                    String apkuploadpath = Util.getProPath("FILE_APK_URL");
//                    System.out.println("同步文件:"+apkmd5+".apk"+">>>>>>>>>"+apkuploadpath);
//                    System.out.println("本地路径:"+savetoFile);
//                    String url = Util.getProPath("FILESERVER")+ "?type=apkmd5&md5=" + apkmd5;
//                    System.out.println("url:"+url);
//                    if(!UrlUtil.getHasFile(url)){
//                        try{
//                            System.out.println("同步文件:"+filename+">>>>>>>>>"+apkuploadpath);
//                            FileUtil.updfile( apkuploadpath , savetoFile, apkmd5+".apk");
//                            System.out.println("同步完毕。。。");
//                        }catch(Exception e)
//                        {
////                        log.error("",e);
//                            System.out.println("apk文件同步出错:"+e.getMessage());
//                            //FileUtil.saveErrFile(Config.GetInstance().getApkurl() , filepath, filename);
//                            e.printStackTrace();
//                        }
//                    }
                }
                out.print(apkmd5);
            } 
            catch(FileUploadException e) 
            { 
                e.printStackTrace(); 
                System.out.println(e.getMessage()+"结束"); 
            }  finally{
                if(out != null){
                    out.close();
                }
            }
        } 
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException  
        { 
            processRequest(request, response); 
        } 
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException  
        { 
            processRequest(request, response); 
        } 

 

web.xml:

<servlet> 
        <servlet-name>FileUpload</servlet-name> 
        <servlet-class>upload.FileUpload</servlet-class> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>FileUpload</servlet-name> 
        <url-pattern>/upload/FileUpload</url-pattern> 
    </servlet-mapping>

分享到:
评论

相关推荐

    HTML5 PHP jquery uploadify上传文件

    HTML5 PHP jquery uploadify上传文件,带进度条,author:吕大豹。仿照uploadify写的,www.codesc.net已做过修正,本例的配置参数均与uploadify官网一致,参照官网的api就可以了,直接把文件夹上传到支持php的服务器...

    uploadify上传文件HTTP ERROR

    "uploadify上传文件HTTP ERROR"这个标题指向了一个特定的问题,即用户在尝试使用Uploadify插件进行文件上传时遇到了HTTP错误。Uploadify是一款流行的JavaScript插件,它允许用户通过异步方式上传文件到服务器,提供...

    uploadify多文件上传例子代码

    当uploadify上传文件时,会发送多个HTTP请求,每个请求对应一个文件。在doPost方法中,你可以通过Part接口来接收并处理这些文件。例如: ```java protected void doPost(HttpServletRequest request, ...

    Struts2+uploadify上传文件

    Struts2和Uploadify是两种在Web开发中用于文件上传的技术。...以上就是关于"Struts2+uploadify上传文件"的知识点详解,希望对你的学习有所帮助。在实际开发中,结合这两个工具可以实现高效、灵活的文件上传功能。

    jquery-java-ajax-uploadify上传文件

    在IT行业中,前端开发经常会遇到文件上传的需求,而"jquery-java-ajax-uploadify上传文件"是一个经典的方法,结合了JavaScript库jQuery、Ajax技术以及Uploadify插件来实现这一功能。在这个过程中,我们将深入探讨...

    使用Jquery.uploadify上传文件(JAVA版)

    使用Jquery.uploadify上传文件。 jquery有很多插件,其中也有不少上传文件的插件,像ajaxfileupload.js、uploadify.js,不过网上的例子几乎全是php的,很郁闷,研究了半天,终于把uploadify用jsp版本弄出来了

    MVC4下对话框中使用Uploadify上传多个文件

    6. **处理上传结果**:在`onUploadSuccess`事件中,我们可以根据后端返回的数据更新页面,例如显示已上传文件的列表。 至此,我们完成了在MVC4中使用JQuery Dialog和Uploadify进行多文件上传的基本流程。请注意,...

    uploadify上传文件

    "uploadify上传文件"这个标题意味着我们将讨论如何使用Uploadify插件来实现文件上传功能。Uploadify的主要优点在于它支持批量上传,用户可以选择多个文件同时上传,极大地提高了上传效率。此外,它还提供了实时的...

    使用uploadify上传文件

    此外,Uploadify还支持多种自定义设置,例如限制上传文件类型、大小、更改按钮文本等,这为我们提供了高度的灵活性来适应不同的项目需求。 总结来说,Uploadify是一个强大的jQuery文件上传插件,能够帮助开发者实现...

    spring mvc uploadify上传文件

    此外,需要确保上传文件的安全性,防止恶意文件上传,例如检查文件扩展名、执行文件内容扫描等。 ### 7. 性能优化 对于大量文件上传,可以考虑使用异步处理、分片上传、多线程等方式提高上传性能。同时,合理配置...

    C# uploadify文件上传.zip

    在C#编程环境中,Uploadify是一个非常流行的JavaScript库,它与服务器端的C#代码结合,用于实现用户友好的文件上传功能。这个压缩包“C# uploadify文件上传.zip”很可能是包含了一个完整的示例项目,帮助开发者了解...

    Grails结合uploadify上传文件的简单代码

    uploadify则是一个JavaScript库,它允许用户通过异步方式上传文件,提供友好的用户体验。 首先,我们需要在Grails项目中引入uploadify。这通常涉及到在`build.gradle`或`Config.groovy`文件中添加对应的依赖。对于...

    jquery.uploadify上传文件

    在网页开发中,用户经常需要上传文件,例如图片、文档等。jQuery Uploadify是一款强大的JavaScript插件,它允许用户通过异步方式实现多文件的同时上传,极大地提升了用户体验。这个插件以其易用性、自定义性和高效的...

    PHP+UploadiFy批量上传文件

    避免恶意文件上传,如通过检查文件头、限制上传文件类型、使用白名单等方法。 6. **优化性能**:对于大量文件上传,可能需要考虑分批处理,使用异步队列,或者使用多线程上传以提高效率。 总结起来,使用PHP和...

    Uploadify上传文件方法

    以下是对Uploadify上传文件方法及其在ASP.NET中的使用的详细说明: 1. **Uploadify基本使用** - 首先,你需要在HTML页面中引入jQuery库、jQuery EasyUI(可选,用于美化界面)以及Uploadify的JavaScript和CSS文件...

    jQuery uploadify上传文件(JAVA版+Struts2即时预览效果)

    首先,jQuery uploadify是一款优秀的前端文件上传插件,它允许用户通过Ajax方式异步上传文件,提供了友好的用户体验,如进度条显示、多文件上传等。然而,官方提供的示例主要是基于PHP的,对于Java开发者来说,寻找...

    jquery文件上传插件 jquery.uploadify.js 不支持IE10现在经过修改

    在IT行业中,jQuery Uploadify.js是一款非常流行的前端文件上传插件,它允许用户通过异步方式上传文件到服务器,提供了一种友好的用户体验。然而,随着浏览器版本的更新,一些较旧的插件可能不再兼容新的浏览器,...

    Uploadify上传文件

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示,可多文件上传

    Java调用uploadify实现文件上传Demo实现

    Java调用uploadify实现文件上传Demo实现,文档参见:http://www.mbaike.net/java/1940.html

Global site tag (gtag.js) - Google Analytics