`
neolimeng
  • 浏览: 83684 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Uploadify的使用(java版)

阅读更多

Web上传文件是一个很常用的功能,试用过不少上传组件,要么是每次只能选择一个文件,要么是选择了文件后不能取消,直接上传,要么就是对文件、队列等限制支持不佳。总之仅仅是依靠JavaScript的实现不太好用,Flash+JavaScript的方式似乎对于这种上传需求满足得更好。
今天试用了一下uploadify,发现效果不错,可以看看它的Demo
首先下载,选最上面那个最新的版本,下载回来的压缩包包括所有源文件和php的例子外加上pdf文档,真是比较厚道。
他的实现是用的PHP,当然可以使用任何其他后台语言进行实现,这里我用Java实现一把,为了便于观看,放上工程布局。
注意:工程中需要引入commons-fileupload的包。



这里只列举需要自己修改或实现的代码:
upload.java

package servlet;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;

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;

@SuppressWarnings(
"serial")
public class Upload extends HttpServlet {
    @SuppressWarnings(
"unchecked")
    
public void doPost(HttpServletRequest request, HttpServletResponse response)
            
throws ServletException, IOException {
        String savePath 
= this.getServletConfig().getServletContext()
                .getRealPath(
"");
        savePath 
= savePath + "/uploads/";
        File f1 
= new File(savePath);
        System.out.println(savePath);
        
if (!f1.exists()) {
            f1.mkdirs();
        }

        DiskFileItemFactory fac 
= new DiskFileItemFactory();
        ServletFileUpload upload 
= new ServletFileUpload(fac);
        upload.setHeaderEncoding(
"utf-8");
        List fileList 
= null;
        
try {
            fileList 
= upload.parseRequest(request);
        }
 catch (FileUploadException ex) {
            
return;
        }

        Iterator
<FileItem> it = fileList.iterator();
        String name 
= "";
        String extName 
= "";
        
while (it.hasNext()) {
            FileItem item 
= it.next();
            
if (!item.isFormField()) {
                name 
= item.getName();
                
long size = item.getSize();
                String type 
= item.getContentType();
                System.out.println(size 
+ " " + type);
                
if (name == null || name.trim().equals("")) {
                    
continue;
                }

                
//扩展名格式:  
                if (name.lastIndexOf(".">= 0{
                    extName 
= name.substring(name.lastIndexOf("."));
                }

                File file 
= null;
                
do {
                    
//生成文件名:
                    name = UUID.randomUUID().toString();
                    file 
= new File(savePath + name + extName);
                }
 while (file.exists());
                File saveFile 
= new File(savePath + name + extName);
                
try {
                    item.write(saveFile);
                }
 catch (Exception e) {
                    e.printStackTrace();
                }

            }

        }

        response.getWriter().print(name 
+ extName);
    }

}


index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
      
<head>
        
<base href="<%=basePath%>">
        
<title>Uploadify</title>
        
<link href="css/default.css" rel="stylesheet" type="text/css" />
        
<link href="css/uploadify.css" rel="stylesheet" type="text/css" />
        
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
        
<script type="text/javascript" src="js/swfobject.js"></script>
        
<script type="text/javascript" src="js/jquery.uploadify.v2.0.1.js"></script>
        
<script type="text/javascript">
        $(document).ready(
function() {
            $(
"#uploadify").uploadify({
                'uploader'       : 'uploadify.swf',
                'script'         : 'servlet
/Upload',
                'cancelImg'      : 'images
/cancel.png',
                'folder'         : 'uploads',
                'queueID'        : 'fileQueue',
                'auto'           : 
false,
                'multi'          : 
true,
                'simUploadLimit' : 
2,
                'buttonText'     : 'BROWSE'
            }
);
        }
);
        
</script>
    
</head>
    
<body>
        
<div id="fileQueue"></div>
        
<input type="file" name="uploadify" id="uploadify" />
        
<p>
        
<href="javascript:jQuery('#uploadify').uploadifyUpload()">开始上传</a>&nbsp;
        
<href="javascript:jQuery('#uploadify').uploadifyClearQueue()">取消所有上传</a>
        
</p>
    
</body>
</html>

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
    
<servlet>
        
<servlet-name>Upload</servlet-name>
        
<servlet-class>servlet.Upload</servlet-class>
    
</servlet>
    
<servlet-mapping>
        
<servlet-name>Upload</servlet-name>
        
<url-pattern>/servlet/Upload</url-pattern>
    
</servlet-mapping>
    
<welcome-file-list>
        
<welcome-file>index.jsp</welcome-file>
    
</welcome-file-list>
</web-app>

文中没有对代码进行过多说明,java和xml相信搞java的人都看得懂,jsp中涉及到Uploadify的调用方式和参数设置,这些详细的设置信息可以参考Uploadify的文档,根据自己的需要进行设置。

分享到:
评论
7 楼 zalbelieve 2011-08-31  
很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。很给力呀。
6 楼 linuxfans.li 2011-06-30  
楼主,我执行你的例子不成功,报http error,可否把你的例子打包给个下载地址呢
fileList = upload.parseRequest(request);
这句执行不成功,没报错,代码也不继续往下执行
求能运行的例子打包下载,谢谢
5 楼 lqixv 2011-02-18  
有这样一个问题:如果 flash 按钮的尺寸 小于 按钮图片的大小,那么,flash 按钮只显示了一部分 按钮图片。

我想要让 flash 显示完整的按钮图片,怎么做?
4 楼 lqixv 2011-02-15  
非常感谢,很好用!
3 楼 hanbin51987 2010-08-25  
先顶你在看  正需要这个~~
2 楼 sumaolin 2010-06-10  
谢谢啦,刚测试了下,可以用
1 楼 爱老虎哟 2010-05-23  
非常感谢了

相关推荐

    Uploadify_java版Demo

    这个"Uploadify_java版Demo"应该是一个包含了Uploadify与Java后端整合的示例项目,帮助开发者理解如何在Java环境下使用Uploadify进行文件上传操作。 Uploadify的主要特点包括批量上传、进度条显示、自定义样式以及...

    uploadify java版实例代码

    上传功能在我们的程序中是经常会用到的,而传统的http上传在... 那么今天我要给大家介绍额就是一款jQuery的无刷新上传插件 -Uploadify,他有免费版和收费版两种,免费版的是用Flash实现的,而收费版的是用html5实现的

    uploadify java版 可上传多张图片

    "uploadify java版 可上传多张图片" 这个标题揭示了我们即将探讨的是一个使用Java技术实现的、基于Uploadify插件的多图片上传功能。Uploadify是一款流行的前端文件上传工具,它允许用户通过异步方式上传多个文件,...

    uploadify java 版

    综上所述,"uploadify java版"涉及的主要知识点包括:前端的Uploadify插件配置、后端Java Servlet的文件上传处理、文件的安全存储、错误处理机制以及性能优化策略。通过这些步骤,你可以构建一个完整的文件批量上传...

    jquery uploadify java版

    《jQuery Uploadify与Java结合实现文件上传详解》 在网页应用中,文件上传功能是必不可少的一部分,而jQuery Uploadify是一款非常流行的前端文件上传插件,它提供了丰富的自定义选项和友好的用户界面。本文将深入...

    Blog.rar_Uploadify_java jquery uploadfy_java 批量上传_uploadify java

    本项目“Blog.rar_Uploadify_java.jquery.uploadfy_java.批量上传_uploadify_java”提供了一个基于jQuery插件Uploadify和Java后端实现批量上传的示例,非常适合开发者学习和参考。 首先,Uploadify是一款流行的...

    uploadify多文件上传(java版)

    5. **Java后端支持**:Uploadify的Java版意味着在后端,开发者需要使用Java语言来处理文件接收、存储和验证等工作。这通常涉及到Servlet、Spring MVC或其他Java Web框架,处理文件流的读取和写入,以及文件安全性和...

    jqueryUploadify+java(Servlet)Demo

    **jQuery Uploadify与Java Servlet整合应用** 在Web开发中,文件上传是一个常见的需求。`jQuery Uploadify`是一款基于jQuery的插件,它提供了一个优雅、用户友好的方式来实现文件上传功能,支持多文件选择、进度条...

    java使用uploadify批量上传文件

    本文将深入探讨如何在Java环境中结合Uploadify3.1实现文件的批量上传。 首先,理解Uploadify3.1的工作原理是至关重要的。Uploadify通过Flash或HTML5技术实现了异步文件上传,允许用户选择多个文件并一次性上传,...

    jquery uploadify java版本(整合strut2web项目)

    在IT行业中,jQuery Uploadify是一款广泛使用的前端文件上传插件,它可以实现异步批量上传,大大提升了用户体验。本文将深入探讨如何将jQuery Uploadify与Java后端框架Struts2进行整合,以实现在Web项目中的文件上传...

    uploadify插件的java示例

    本示例将深入探讨如何在Java环境中结合Uploadify进行文件上传操作,同时也会涉及到Servlet的使用。 在Java Web开发中,Servlet是一个服务器端的Java程序,它负责处理HTTP请求并生成HTTP响应。Uploadify插件通过与...

    uploadify上传插件使用示例java_web

    在使用Uploadify时,首先需要在HTML页面中引入相关的CSS和JavaScript文件,包括uploadify.css和uploadify.js。接下来,我们需要创建一个HTML元素(通常是`&lt;input type="file"&gt;`)并对其进行配置,通过`id`属性指定...

    uploadify java完整项目工程

    "uploadify java完整项目工程"是一个基于JSP、Servlet和Java技术实现的文件上传解决方案,主要特点是使用了Uploadify插件。Uploadify是一款流行的JavaScript库,它允许用户通过异步方式上传多文件,提升了用户体验。...

    uploadify实现多图片上传并预览Java版

    在这个"uploadify实现多图片上传并预览Java版"的项目中,我们将探讨如何使用uploadify与后端的Java服务进行交互,以实现在网页上选择多张图片,即时预览并上传至服务器。 首先,uploadify插件依赖jQuery库,因此在...

    Jquery Uploadify +Java 文件上传

    总之,`jQuery Uploadify` 和 `Java` 结合使用,能够实现高效、用户友好的多文件上传功能。通过`Apache Commons FileUpload`处理服务器端的文件上传,可以有效地管理上传的文件并保证系统稳定性。在实际开发中,根据...

    uploadify插件java小demo

    在Java环境中使用Uploadify,我们可以构建一个强大的文件上传系统,这篇文章将详细介绍如何在Java后端与Uploadify前端插件配合工作。 首先,我们需要在前端页面引入Uploadify插件的相关资源,包括JavaScript文件、...

    uploadify的java实现

    implement mutiple upload file WEB function (using uploadify version 2.1 and 3.1) in JAVA. Eclipse IDE环境下测试通过。

    Uploadify和java后台实现多图上传并把缩略图跟上传的url显示到画面上

    Uploadify和java后台实现多图上传并把缩略图跟上传的url显示到画面上 1、使用jQuery的Uploadify实现上传功能,前台无需太多配置,简单修改即可符合您的要求。虽然是jQuery虽然是Uploadify,但是大多需要手动修改的...

    单文件与多文件上传uploadify控件的java版本

    本主题将深入探讨“单文件与多文件上传”以及如何使用“uploadify控件”的Java版本来实现这一功能。 Uploadify是一款流行的JavaScript插件,它允许用户通过异步方式上传文件,提供友好的用户体验,如进度条显示、多...

    java使用uploadify插件实现多文件上传

    以上代码展示了如何在Java中使用Uploadify插件进行多文件上传的基本步骤。在实际项目中,你可能需要考虑更多的细节,例如错误处理、文件大小限制、文件类型的检查、并发上传的处理等。此外,如果文件数量非常大,...

Global site tag (gtag.js) - Google Analytics