- 浏览: 222060 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (213)
- SQLServer (8)
- flex (8)
- 文章 (5)
- java (91)
- 数据结构 (0)
- 设计模式 (0)
- C# (2)
- Oracle (4)
- 技术 (4)
- 云计算 (0)
- 算法 (0)
- 记录 (3)
- javascript (5)
- div/css (1)
- http (0)
- IE (1)
- web (1)
- hadoop (0)
- extjs (4)
- hibernate (6)
- 错误记录 (5)
- mysql (4)
- json (1)
- jvm (1)
- spring (4)
- 工具 (2)
- tomcat (3)
- cxf (3)
- spring data (1)
- memcached (5)
- android-exception (2)
- 数据压缩 (1)
- 博客 (2)
- bat (0)
- nginx (3)
- svn (2)
- jpa (1)
- windows (2)
- h2 (2)
- webservice (2)
- android (5)
- oa (0)
- eclipse (2)
- jquery (2)
- jni (4)
- weblogic (1)
- work (0)
- smartclient (1)
- sql (0)
- excel (0)
- test (0)
- t (0)
- js (4)
- utils (0)
- bootstrap (0)
- sniper (0)
- ztree (0)
- google (0)
- mdb (0)
- redis (1)
- 思想 (1)
- css (0)
- appCan (0)
- activiti (0)
- 工作 (0)
- 浏览器 (1)
没有中文乱码问题。
1. 客户端使用HTML + JavaScript(AJAX)
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Upload Demo</title>
<style type="text/css"></style>
<script src="js/jquery.js"></script>
<script src="js/ajaxupload.js"></script>
<script type="text/javascript">
$(function() {
// 创建AJAX方式上传文件
var $uploadBtn = $("#uploadBtn");
new AjaxUpload($uploadBtn, {
action: 'upload.action',
name: 'uploadfile',
onSubmit: function(file, ext){
$("#info").html("start upload file");
},
onComplete: function(file, response){
$("#info").html(response);
}
});
});
</script>
</head>
<body>
<div id="info">Choose file to upload</div>
<input type="button" width="200px" id="uploadBtn" value="Upload Demo">
</body>
</html>
2. 服务器端使用Servlet:Apache commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
@SuppressWarnings("serial")
public class Uploader extends HttpServlet {
private ServletContext sc;
private String uploadDir = "downloads";
@Override
public void init(ServletConfig config) {
sc = config.getServletContext();
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
doPost(request, response);
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8"); // 防止中文乱码
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator itr = items.iterator();
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();
if (item.isFormField()) {
System.out.println("表单参数名:" + item.getFieldName() + ",表单参数值:" + item.getString("UTF-8"));
} else {
if (item.getName() != null && !item.getName().equals("")) {
System.out.println("上传文件的大小:" + item.getSize());
System.out.println("文件的类型:" + item.getContentType());
System.out.println("上传文件的名称:" + item.getName());// 返回上传文件在客户端的完整路径名称
File file = new File(sc.getRealPath("/") + File.separatorChar + uploadDir + File.separatorChar
+ item.getName());
item.write(file);
} else {
response.getWriter().println("没有选择文件");
}
}
}
} catch (Exception e) {
e.printStackTrace();
response.getWriter().println("上传文件失败");
}
response.getWriter().println("Ok");
}
}
1. 客户端使用HTML + JavaScript(AJAX)
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Upload Demo</title>
<style type="text/css"></style>
<script src="js/jquery.js"></script>
<script src="js/ajaxupload.js"></script>
<script type="text/javascript">
$(function() {
// 创建AJAX方式上传文件
var $uploadBtn = $("#uploadBtn");
new AjaxUpload($uploadBtn, {
action: 'upload.action',
name: 'uploadfile',
onSubmit: function(file, ext){
$("#info").html("start upload file");
},
onComplete: function(file, response){
$("#info").html(response);
}
});
});
</script>
</head>
<body>
<div id="info">Choose file to upload</div>
<input type="button" width="200px" id="uploadBtn" value="Upload Demo">
</body>
</html>
2. 服务器端使用Servlet:Apache commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
@SuppressWarnings("serial")
public class Uploader extends HttpServlet {
private ServletContext sc;
private String uploadDir = "downloads";
@Override
public void init(ServletConfig config) {
sc = config.getServletContext();
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
doPost(request, response);
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8"); // 防止中文乱码
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator itr = items.iterator();
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();
if (item.isFormField()) {
System.out.println("表单参数名:" + item.getFieldName() + ",表单参数值:" + item.getString("UTF-8"));
} else {
if (item.getName() != null && !item.getName().equals("")) {
System.out.println("上传文件的大小:" + item.getSize());
System.out.println("文件的类型:" + item.getContentType());
System.out.println("上传文件的名称:" + item.getName());// 返回上传文件在客户端的完整路径名称
File file = new File(sc.getRealPath("/") + File.separatorChar + uploadDir + File.separatorChar
+ item.getName());
item.write(file);
} else {
response.getWriter().println("没有选择文件");
}
}
}
} catch (Exception e) {
e.printStackTrace();
response.getWriter().println("上传文件失败");
}
response.getWriter().println("Ok");
}
}
发表评论
-
adc-0205
2021-02-18 09:51 0data-handler-1.0-SNAPSHOT-B2-20 ... -
spring aop和ioc的区别
2017-06-21 15:25 0什么是DI机制? 依赖注入(Dependecy Inject ... -
SpringMVC的各种参数绑定方式
2017-06-16 09:39 0http://www.cnblogs.com/HD/p/410 ... -
spring mvc传递list参数
2017-06-15 23:41 1322http://www.cnblogs.com/liusongl ... -
eclipse字体问题
2017-06-09 12:26 537.metadata\.plugins\org.eclipse. ... -
泛型方法指定返回值类型
2017-04-01 17:11 1036public static <T> T getCa ... -
mysql数据库编码设置
2017-03-31 14:09 0SHOW VARIABLES LIKE 'char%' se ... -
java异常分类
2017-03-21 20:00 736http://www.blogjava.net/balajin ... -
Java工程师成神之路
2017-03-08 13:59 0http://www.importnew.com/17389. ... -
JEECG快速开发平台
2017-02-27 17:03 0http://demo.jeecg.org/loginCont ... -
Java性能调优笔记
2017-02-27 15:38 0http://www.cnblogs.com/likehua/ ... -
Windows环境Mycat数据库分库分表中间件部署
2017-02-27 14:23 0http://www.cnblogs.com/Wulex/p/ ... -
浅谈算法和数据结构(1):栈和队列
2017-02-27 14:21 0http://blog.jobbole.com/79267/ ... -
关系型数据的分布式处理系统MyCAT
2017-02-27 14:14 0http://www.blogjava.net/amigoxi ... -
关于Apache/Tomcat/JBOSS/Neginx/lighttpd/Jetty等一些常见服务器的区别比较和理解
2017-02-27 14:05 0http://blog.csdn.net/allenlinru ... -
实战 Lucene,第 1 部分: 初识 Lucene
2017-02-27 14:02 0https://www.ibm.com/developerwo ... -
内存调优
2017-02-27 09:20 377http://blog.csdn.net/gjanyanlig ... -
内存管理和垃圾回收
2017-02-27 09:14 608http://blog.csdn.net/gjanyanlig ... -
activiti学习 表相关
2017-02-22 10:53 0select * from EFLOW_WO_COMMON w ... -
jboss之启动加载过程详解(-)
2017-02-20 17:04 1014http://www.2cto.com/os/201404/2 ...
相关推荐
本篇文章将深入探讨AJAX异步文件上传以及如何使用Servlet进行处理。 ### 1. AJAX异步文件上传原理 在HTML5之前,由于浏览器安全限制,AJAX无法直接处理文件,但HTML5引入了`FormData`对象,使得AJAX能够处理文件...
【Java + Servlet + Ajax 程序详解】...从理解Java的基础概念到精通Servlet的请求处理,再到熟练运用Ajax实现页面异步更新,每一步都将加深你对Web开发的理解。通过实践,你将能够构建出满足用户需求的现代互联网应用。
【基于jsp+servlet+Ajax异步登陆模拟web项目】是一个典型的Web开发实例,它整合了三种核心技术:JavaServer Pages(JSP)、Servlet以及Asynchronous JavaScript and XML(Ajax)。这个项目的核心目的是实现用户登录...
综上所述,"Servlet图片批量上传ajax异步上传"是一个完整的Web应用开发场景,涵盖了从前端的无刷新用户体验,到后端的文件处理,再到数据的JSON交换。这个Demo的实现可以帮助开发者理解如何在实际项目中整合这些技术...
总的来说,这个"java做的ajax异步上传 图片或文件的demo"涵盖了Java Web开发中的关键概念,包括Ajax通信、文件上传处理、Servlet、以及Eclipse和Tomcat的使用。通过学习和实践这个demo,开发者可以深入了解这些技术...
Java文件异步上传是一种在Web应用中常见的技术,它允许用户在不阻塞浏览器界面的情况下上传文件。这种技术尤其在处理大文件或者批量上传时,能够显著提升用户体验,因为它们不会冻结页面,允许用户继续与应用程序...
综上所述,"Java通过jQuery实现ajax异步请求"的示例工程涵盖了客户端与服务器端的交互流程,包括使用jQuery发起AJAX请求、Java后端处理请求并返回数据,以及数据格式的转换和错误处理。了解并掌握这些知识点,对于...
本文将深入探讨如何使用Java实现多文件的异步上传功能。 #### 一、前端实现 在前端部分,我们主要依赖于HTML5中的`FormData`对象以及jQuery库来实现文件的异步上传。 ##### HTML结构 ```html <!-- 文件输入框 --...
以上就是一个基本的Ajax异步文件上传的实现,前端使用Ajax发送文件,后端使用Servlet接收并处理。为了实际应用,你可能需要考虑更多的细节,比如错误处理、文件大小限制、多文件上传等。此外,你提供的压缩包文件...
2. **Java文件下载**:在Java Web开发中,服务器端通常使用Servlet或Controller来处理文件下载请求。这些组件会根据客户端请求,读取文件内容,设置合适的HTTP响应头(如Content-Type,Content-Disposition等),并...
【Java Servlet】 Java Servlet是Java编程语言中的一个标准接口,由Java EE(企业版)定义,用于扩展服务器的功能。Servlet被用来动态处理HTTP请求,它可以接收、处理并响应来自客户端(如浏览器)的请求。在大型...
在服务器端,通常使用Java和相关的框架(如Spring、Struts或Servlet)来处理这些请求。在这个例子中,服务器可能需要连接到MySQL数据库,查询与输入文本匹配的建议数据。为了实现这一点,你需要创建一个Java方法,该...
1. **Ajax异步文件上传**:传统的文件上传通常会刷新整个页面,而Ajax则允许我们在后台异步地发送文件,不打断用户的其他操作。使用Ajax上传文件可以避免页面跳转,提高交互性。在JavaScript中,我们通常使用`...
本文将深入讲解如何使用AJAX、JavaScript、Java和Servlet来实现一个自定义的文件上传功能,包括限制上传文件的数量以及展示进度条。 首先,我们需要在前端页面上创建一个表单,用户可以通过这个表单选择要上传的...
- **定义请求方法和URL**:使用open()方法设置请求类型(GET或POST)、URL(指向Servlet的路径)以及是否异步执行。 - **设置请求头**:如果需要发送额外的头部信息(如Content-Type),可以在open()之后,send()...
在`TestJSP`这个文件中,可能包含了实现上述步骤的示例代码,如DAO接口和实现类、Service类、Servlet处理类以及使用AJAX的JSP页面。通过分析和学习这些代码,你可以更好地理解JSP、Servlet、AJAX和DAO设计模式如何...
- 使用jQuery和Ajax实现异步数据交互,如动态加载数据、无刷新提交表单等。 - 编写Servlet来处理请求和响应,作为服务器端的控制器。 - 最后,测试和调试整个系统,确保所有功能正常运行。 通过实践这样的综合例子...
`jsp异步上传文件`这个主题聚焦于如何利用JavaServer Pages (JSP)、Servlet以及JavaScript的ajaxFileupload.js插件来实现在Web应用中异步上传文件。这种方式可以提供更好的用户体验,因为文件上传不会阻塞页面的其他...
这个“java带进度条的异步上传”示例利用了Servlet、Ajax以及可能的JavaScript库,如jQuery,来提供这样的功能。下面将详细解释实现这一功能的关键知识点。 首先,我们要理解Java Servlet的角色。Servlet是Java EE...