uploadify java 上传_jquery使用uploadify插件实现多文件的上传(java版)

2、安装,由于下载下来的例子是php版本的,所以我只留下了主要的几个文件。如图:

b2d4391405b5f69829c1d810a0b84dfe.png

4、使用

前台页面:

pageEncoding="UTF-8"%>

html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Insert title here

$(document).ready(function() {

$("#uploadify").uploadify({

'swf'       : 'plugin/uploadify/uploadify.swf',

'uploader'  : 'UploadServlet',

'folder'         : '/upload',

'queueID'        : 'fileQueue',

'cancelImg'      : 'plugin/uploadify/uploadify-cancel.png',

'buttonText'     : '上传文件',

'auto'           : false, //设置true 自动上传 设置false还需要手动点击按钮

'multi'          : true,

'wmode'          : 'transparent',

'simUploadLimit' : 999,

'fileTypeExts'        : '*.*',

'fileTypeDesc'       : 'All Files'

});

});

上传|

取消上传

后台:

这里需要用到commons-fileupload组件,自行下载(提供的源码中有哦~)。

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Date;

import java.util.Iterator;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

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 org.apache.commons.fileupload.util.Streams;

/**

* Servlet implementation class UploadServlet

*/

@WebServlet("/UploadServlet")

public class UploadServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public UploadServlet() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

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

// TODO Auto-generated method stub

doPost(request,response);

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

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

// TODO Auto-generated method stub

//文件存放的目录

File tempDirPath =new File(request.getSession().getServletContext().getRealPath("/")+"\\upload\\");

if(!tempDirPath.exists()){

tempDirPath.mkdirs();

}

//创建磁盘文件工厂

DiskFileItemFactory fac = new DiskFileItemFactory();

//创建servlet文件上传组件

ServletFileUpload upload = new ServletFileUpload(fac);

//文件列表

List fileList = null;

//解析request从而得到前台传过来的文件

try {

fileList = upload.parseRequest(request);

} catch (FileUploadException ex) {

ex.printStackTrace();

return;

}

//保存后的文件名

String imageName = null;

//便利从前台得到的文件列表

Iterator it = fileList.iterator();

while(it.hasNext()){

FileItem item =  it.next();

//如果不是普通表单域,当做文件域来处理

if(!item.isFormField()){

imageName = new Date().getTime()+Math.random()*10000+item.getName();

BufferedInputStream in = new BufferedInputStream(item.getInputStream());

BufferedOutputStream out = new BufferedOutputStream(

new FileOutputStream(new File(tempDirPath+"\\"+imageName)));

Streams.copy(in, out, true);

}

}

//

PrintWriter out = null;

try {

out = encodehead(request, response);

} catch (IOException e) {

e.printStackTrace();

}

//这个地方不能少,否则前台得不到上传的结果

out.write("1");

out.close();

}

/**

* Ajax辅助方法 获取 PrintWriter

* @return

* @throws IOException

* @throws IOException

* request.setCharacterEncoding("utf-8");

response.setContentType("text/html; charset=utf-8");

*/

private PrintWriter encodehead(HttpServletRequest request,HttpServletResponse response) throws IOException{

request.setCharacterEncoding("utf-8");

response.setContentType("text/html; charset=utf-8");

return response.getWriter();

}

}

5、最终效果图 有点类似百度上传文件的页面效果 没有百度做的好看哈~ 请勿喷

724793aad8e5d37775efc77078d9bc63.png

a3718819bce1866af3d7948e6ab8691c.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js 多个定时器_JS中的同步/异步编程

1. 进程(process)/线程(thread)进程process: 电脑端安装很多的应用软件,每当运行一个应用程序,相当于开辟一个进程(而对于浏览器来说,每新建一个页卡访问一个页面,都是新开辟一个进程)任务管理器…

Android WebView Long Press长按保存图片到手机

<span style"font-size:18px;">首先要先注册长按监听菜单private String imgurl "";/**** 功能&#xff1a;长按图片保存到手机*/Overridepublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {super.onCreateCo…

specification java_使用JPA实现Specification规范模式 -解道Jdon

使用JPA实现Specification规范规格模式由DDD之父 Eric Evans 和OO之父 Martin Fowler定义的规范(Specification也称规格模式)模式article 越来越受到广泛应用&#xff0c;本文介绍如何使用JavaEE 持久层规范JPA实现规格模式&#xff0c;其实现思想也适合其他持久层框架。案例源…

sublime用cmd窗口调试python_如何使用xdebug和sublime调试python脚本

然后我去了XDebug.崇高-设置&#xff0c;但我不确定如何配置它(我链接到什么&#xff0c;它需要什么网址&#xff0c;等等…){// For remote debugging to resolve the file locations// it is required to configure the path mapping// with the server path as key and loca…

Tomcat免安装版的环境变量配置以及Eclipse下的Tomcat配置和测试

Tomcat是目前比较流行的开源且免费的Web应用服务器&#xff0c;在我的电脑上第一次安装Tomcat&#xff0c;再经过网上教程和自己的摸索后&#xff0c;将这个过程 重新记录下来&#xff0c;以便以后如果忘记了可以随时查看。 注意&#xff1a;首先要明确一点&#xff0c;Tomcat与…

java开发和structs的关系_java---springMVC与strutsMVC的区别

项目刚刚换了web层框架&#xff0c;放弃了struts2改用spring3mvc当初还框架的时候目的比较单纯---springmvc支持rest&#xff0c;小生对restful url由衷的喜欢不用不知道 一用就发现开发效率确实比struts2高我们用struts2时采用的传统的配置文件的方式&#xff0c;并没有使用传…

python unicode error_关于GAE中运行python出现unicode decode error

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼老问题了&#xff0c;但因为本人不会python语法但却要用&#xff0c;找了很久解决办法&#xff0c;比如添加一行# -*- coding: utf-8 -*-但还是不行。。主要errorUnicodeDecodeError: *ascii* codec can*t decode byte 0xb0 in pos…

【推荐】介绍两款Windows资源管理器,Q-Dir 与 FreeCommander XE(比TotalCommander更易用的免费资源管理器)...

你是否也像我一样&#xff0c;随着硬盘、文件数量的增加&#xff0c;而感到对于文件的管理越来越乏力。 于是我试用了传说中的各种软件&#xff0c;包括各种Explorer外壳&#xff0c;或者第三方资源管理器。 最后我确定下来经常使用&#xff0c;并推荐给您的是这两款软件&#…

java rpg项目代码_java rpg游戏代码(移动保存读取)

package ggg;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.io.*;public class Tank1 extends JFrame{//用来存储对应的图片的二维数组 (这里的icon数组&#xff0c;只是用来将我们设置好的数组在界面上显示出来&#xff0…

java类加载器_java底层内功 第一章,类加载器的任性

java类是怎么加载的&#xff1f;类加载机制JVM主要包含三大核心部分&#xff1a;类加载器&#xff0c;运行时数据区和执行引擎。虚拟机将描述类的数据从class文件加载到内存&#xff0c;并对数据进行校验&#xff0c;准备&#xff0c;解析和初始化&#xff0c;最终就会形成可以…

Java学习二:Javac Java的学习(原创)

安装完了JDK&#xff0c;就可以编译、执行简答的Java程序了&#xff0c; 一、Javac ,Java 路径名和包名的关系&#xff1a; 在D盘下&#xff0c;建文件夹Test&#xff0c;在Test里创建文件Java1.java(类名要与文件名一致&#xff09; Java1.java : package Test; public c…

java的requestmapping_SpringMVC RequestMapping 详解

SpringMVC RequestMapping 详解RequestMapping这个注解在SpringMVC扮演着非常重要的角色&#xff0c;可以说是随处可见。它的知识点很简单。今天我们就一起学习SpringMVC的RequestMapping这个注解。文章主要分为两个部分&#xff1a;RequestMapping 基础用法和RequestMapping 提…

redis查询所有key命令_想在生产搞事情?那试试这些 Redis 命令

作者&#xff1a;鸭血粉丝出自&#xff1a;Java极客技术原文&#xff1a;mp.weixin.qq.com/s/WeAamgYYGQfxlsppsn9_lg哎&#xff0c;最近阿粉又双叒叕犯事了。事情是这样的&#xff0c;前一段时间阿粉公司生产交易偶发报错&#xff0c;一番排查下来最终原因是因为 Redis 命令执…

PrintArea打印,@media screen解决移动web开发的多分辨率问题,@media print设置打印的样式...

PrintArea打印&#xff0c;局部DIV打印插件&#xff0c;依赖JQuery。 github:https://github.com/RitsC/PrintArea 当打印时需要临时改变页面布局&#xff0c;可以使用 media print{ /* * CSS */ } 打印时生效&#xff0c;打印完自动失效。 需要屏幕自适应&#xff0c;或多种分…

java arraycopyof_Java中System.arraycopy()和Arrays.copyOf()的区别

System.arraycopy()这是一个由java标准库提供的方法。用它进行复制数组比用for循环要快的多。arraycopy()需要的参数有&#xff1a;源数组&#xff0c;从源数组中的什么位置开始复制的偏移量&#xff0c;目标数组&#xff0c;从目标数组中的什么位置开始复制的偏移量&#xff0…

python 异步 生产者 消费者_python 线程通信 生产者与消费者

1 """2 线程通信的生产者与消费者3 python的queue模块中提供了同步的线程安全的队列类,都具有原子性&#xff0c;实现线程间的同步4 Queue (FIFO&#xff1a; fist in fist out)5 LifoQueue (LIFO&#xff1a; last in fist out)6 PriorityQueue (优先级队列)78…

3、C#面向对象:封装、继承、多态、String、集合、文件(下)

面向对象多态 一、装箱和拆箱 装箱&#xff1a;将值类型转换为引用类型。object o 1&#xff1b;值类型给引用类型赋值 拆箱&#xff1a;将引用类型转换为值类型。int n (int)o; 强制转换为值类型 满足条件&#xff1a;两种类型是否存在继承关系。 int n Convert.ToInt32(&q…

mysql gui 分区_一文彻底搞懂MySQL分区

一.InnoDB逻辑存储结构首先要先介绍一下InnoDB逻辑存储结构和区的概念&#xff0c;它的所有数据都被逻辑地存放在表空间&#xff0c;表空间又由段&#xff0c;区&#xff0c;页组成。段段就是上图的segment区域&#xff0c;常见的段有数据段、索引段、回滚段等&#xff0c;在In…

js 获取域名_RapidDNS域名查询如何联动Goby

前言&#xff1a;http://RapidDNS.io 是一个秒级在线子域名和同IP域名的查询工具。目前拥有25亿条DNS记录&#xff0c;支持A、AAAA、CNAME、MX4种DNS记录类型。由于Goby程序对子域名收集方面不是很完善&#xff0c;这里特编写此插件作为其拓展。可以方便快速获取域名和ip地址信…

iOS 9应用开发教程之iOS 9新特性

iOS 9应用开发教程之iOS 9新特性 iOS 9开发概述 iOS 9是目前苹果公司用于苹果手机和苹果平板电脑的最新的操作系统。该操作系统于2015年6月8号&#xff08;美国时间&#xff09;被发布。本章将主要讲解iOS 9的新特性、以及使用Xcode 7.0如何编写一个简单的iOS 9的应用程序等内容…