文档章节

jquery插件 jsp+servlet+uploadify3.1 文件上传

giianhui
 giianhui
发布于 2016/05/27 11:19
字数 753
阅读 6
收藏 0

网络上很多的例子虽然说是3.1版本的,但是调用方法都是老版本的,跑不起来,经过查看doc,下面的例子可以在tomcat中正常运行。

index.jsp

<%@ page language="java" contentType="text/html; charset=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>文件上传</title>
	    
	 <link href="css/uploadify.css" rel="stylesheet" type="text/css" />
	 <script type="text/javascript" src="scripts/jquery-1.7.2.min.js"></script>
	 <script type="text/javascript" src="scripts/jquery.uploadify-3.1.min.js"></script>
	<script type="text/javascript">
	$(document).ready(function() {
	 $("#uploadify").uploadify({
		 			'auto'           : false,
	                'swf'       	 : '<%=path%>/scripts/uploadify.swf',
	                'uploader'       : '<%=path%>/scripts/uploadify',//后台处理的请求
	                'queueID'        : 'fileQueue',//与下面的id对应
	                'queueSizeLimit' :1,
	                'fileTypeDesc'   : 'rar文件或zip文件',
	                'fileTypeExts' 	 : '*.rar;*.zip', //控制可上传文件的扩展名,启用本项时需同时声明fileDesc
	                'multi'          : true,
	                'buttonText'     : '上传'
	 });
	});
	</script>
	 </head>
	<body>
	 		<div id="fileQueue"></div>
	        <input type="file" name="uploadify" id="uploadify" />
	        <p>
		        <a href="javascript:$('#uploadify').uploadify('upload')">开始上传</a> 
		        <a href="javascript:$('#uploadify').uplaodify('cancel','*')">取消上传</a>
	        </p>
	  </body>
	</html>

servlet: Uploadify.java

package com.rh.core.upload;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
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.disk.DiskFileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;

public class Uploadify extends HttpServlet{
	private static final long serialVersionUID = 1L;  
	  
    /** 
     * 实现多文件的同时上传 
     */   
    public void doGet(HttpServletRequest request,  
            HttpServletResponse response) throws ServletException, IOException {  
          
        //设置接收的编码格式  
        request.setCharacterEncoding("UTF-8");  
        Date date = new Date();//获取当前时间  
        SimpleDateFormat sdfFileName = new SimpleDateFormat("yyyyMMddHHmmss");  
        SimpleDateFormat sdfFolder = new SimpleDateFormat("yyMM");  
        String newfileName = sdfFileName.format(date);//文件名称  
        String fileRealPath = "";//文件存放真实地址  
          
        String fileRealResistPath = "";//文件存放真实相对路径  
          
        //名称  界面编码 必须 和request 保存一致..否则乱码  
        String name = request.getParameter("name");  
              
           
        String firstFileName="";  
        // 获得容器中上传文件夹所在的物理路径  
        String savePath = this.getServletConfig().getServletContext().getRealPath("/") + "uploads\\" + newfileName +"\\";  
        System.out.println("路径" + savePath+"; name:"+name);  
        File file = new File(savePath);  
        if (!file.isDirectory()) {  
            file.mkdirs();  
        }  
  
        try {  
            DiskFileItemFactory fac = new DiskFileItemFactory();  
            ServletFileUpload upload = new ServletFileUpload(fac);  
            upload.setHeaderEncoding("UTF-8");  
            // 获取多个上传文件  
            List fileList = fileList = upload.parseRequest(request);  
            // 遍历上传文件写入磁盘  
            Iterator it = fileList.iterator();  
            while (it.hasNext()) {  
            	Object obit = it.next();
            	if(obit instanceof DiskFileItem){
            		System.out.println("xxxxxxxxxxxxx");
	                DiskFileItem item = (DiskFileItem) obit;  
	                  
	                // 如果item是文件上传表单域     
	                // 获得文件名及路径     
	                String fileName = item.getName();  
	                if (fileName != null) {  
	                    firstFileName=item.getName().substring(item.getName().lastIndexOf("\\")+1);  
	                    String formatName = firstFileName.substring(firstFileName.lastIndexOf("."));//获取文件后缀名  
	                    fileRealPath = savePath + newfileName+ formatName;//文件存放真实地址  
	                      
	                    BufferedInputStream in = new BufferedInputStream(item.getInputStream());// 获得文件输入流  
	                    BufferedOutputStream outStream = new BufferedOutputStream(new FileOutputStream(new File(fileRealPath)));// 获得文件输出流  
	                    Streams.copy(in, outStream, true);// 开始把文件写到你指定的上传文件夹  
	                    //上传成功,则插入数据库  
	                    if (new File(fileRealPath).exists()) {  
	                        //虚拟路径赋值  
	                        fileRealResistPath=sdfFolder.format(date)+"/"+fileRealPath.substring(fileRealPath.lastIndexOf("\\")+1);  
	                        //保存到数据库  
	                        System.out.println("保存到数据库:");  
	                        System.out.println("name:"+name);  
	                        System.out.println("虚拟路径:"+fileRealResistPath);  
	                    }  
	                       
	                }   
            	}
            }   
        } catch (org.apache.commons.fileupload.FileUploadException ex) {
    	   ex.printStackTrace();  
           System.out.println("没有上传文件");  
           return;  
		}   
       response.getWriter().write("1");  
          
    }  
   
    public void doPost(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        doGet(req, resp);  
    }  
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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>Uploadify</servlet-name>  
	 <servlet-class>com.rh.core.upload.Uploadify</servlet-class>  
	</servlet>  
	<servlet-mapping>  
	 <servlet-name>Uploadify</servlet-name>  
	 <url-pattern>/scripts/uploadify</url-pattern>  
	</servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

项目截图:(可能需要修改css文件中图片的位置)



本文转载自:http://blog.csdn.net/giianhui/article/details/7758518

giianhui
粉丝 6
博文 287
码字总数 0
作品 0
深圳
技术主管
私信 提问
20+ 个很棒的 jQuery 文件上传插件或教程

文件上传是网站很常见的功能之一,通过使用 jQuery 可以让上传过程更加人性化,更好的用户体验。本文介绍20个jQuery的文件上传插件,其中有一些是教程。 1. Plupload Plupload 是一个Web浏览...

红薯
2011/08/03
50.6K
9
10 新鲜的 jQuery 插件(2012年1月)

1. jQuery UI Bootstrap 一个基于 Twitter Bootstrap 的 jQuery UI 主题 2. jqGrid 这是非常棒的jQuery 表格插件,在线演示:here. 3. Cloud Zoom Cloud Zoom 是一个小型的图像放大镜插件,放...

红薯
2012/02/01
4.8K
6
12 个必要的 jQuery 表单插件

Web表单是网站中很常见的Web组件,你用它来收集数据,用户的详细信息等。然而,现有的表单限制很多,功能比较简单,尽管有 HTML5 ,不幸的是,并非所有浏览器都支持它,所以现在我们可以使用...

红薯
2012/03/28
5.8K
8
7 款 JavaScript 的 Ajax 文件上传插件

jQuery File Upload jQuery File Upload 是一个Jquery图片上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态语言开发的服务器端...

oschina
2012/05/09
26.2K
13
25+ 个 jQuery 网页拖放操作的插件

这篇文章为你介绍27个jQuery插件,使得你的Web前端具备拖放操作的能力。 Ajax Upload 提供文件拖放上传,并显示上传进度 Drop n’ Save – Drag & Drop Uploader 另外一个文件拖放上传功能的...

红薯
2012/04/09
17.2K
10

没有更多内容

加载失败,请刷新页面

加载更多

java数据类型

基本类型: 整型:Byte,short,int,long 浮点型:float,double 字符型:char 布尔型:boolean 引用类型: 类类型: 接口类型: 数组类型: Byte 1字节 八位 -128 -------- 127 short 2字节...

audience_1
42分钟前
6
0
太全了|万字详解Docker架构原理、功能及使用

一、简介 1、了解Docker的前生LXC LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpa...

Java技术剑
43分钟前
9
0
Wifiphisher —— 非常非常非常流氓的 WIFI 网络钓鱼框架

编者注:这是一个非常流氓的 WIFI 网络钓鱼工具,甚至可能是非法的工具(取决于你的使用场景)。在没有事先获得许可的情况下使用 Wifiphisher 攻击基础网络设施将被视为非法活动。使用时请遵...

红薯
今天
49
1
MongoDB 4 on CentOS 7安装指南

本教程为CentOS x86_64 7.x操作系统下,MongoDB Community x86_64 4.2(GA)安装指南。 安装方式一:yum repo在线安装 [此方式较为简单,官方推荐] Step1:新建MongDB社区版Yum镜像源。 # vim ...

王焱君
今天
7
0
go-micro 入门教程1.搭建 go-micro环境

微服务的本质是让专业的人做专业的事情,做出更好的东西。 golang具备高并发,静态编译等特性,在性能、安全等方面具备非常大的优势。go-micro是基于golang的微服务编程框架,go-micro操作简单...

非正式解决方案
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部