javaweb上传图片课堂代码笔记

TestUpload.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>上传图片</title>
</head>
<body>
<!-- http://127.0.0.1:8080/demo211229/test/test220104/TestUpload.jsp -->
 <form action="/demo211229/UploadServlet" method="post" enctype="multipart/form-data">
 	<input type="file" name="uploadFile1" /><br>
 	<input type="file" name="uploadFile2" /><br>
 	<input type="text" name="coad" /><br>
 	<input type="submit" value="上传" />

 </form>

</body>
</html>

UploadServlet.java

package test220104;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.UUID;

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;

@WebServlet("/UploadServlet")
public class UploadServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("uploadservlet-dopost");
		try {
			upload(req);
		} catch (FileUploadException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 实现服务器端保存图片的功能
	 * 
	 * @throws FileUploadException
	 * @throws IOException 
	 */
	private void upload(HttpServletRequest req)
			throws FileUploadException, IOException {
		DiskFileItemFactory factory = new DiskFileItemFactory();
		ServletFileUpload uplaod = new ServletFileUpload(factory);
		List<FileItem> items = uplaod.parseRequest(req);
		for (FileItem item : items) {
			if (item.isFormField()) {// 是否是非文件域元素
				String name = item.getFieldName();// 得到参数名
				System.out.println("name=" + name);
				String value = item.getString();// 得到参数值
				value = new String(value.getBytes("ISO-8859-1"), "UTF-8");
				System.out.println("value=" + value);
			} else {// 文件域表单元素--保存文件
				//io流来拷贝图片的代码
				System.out.println(item.getFieldName() + " " + item.getName());// 参数名+参数值
				String fn=getFName(item);
				FileOutputStream fos = new FileOutputStream(getFPath()+"/"+fn);// 定义流,将流要写出的目标路径传入
				InputStream is = item.getInputStream();
				int length=-1;
				byte[] b=new byte[1024*1024];
				while(-1 != ( length=is.read(b)))
					fos.write(b,0,length);
				fos.flush();
				fos.close();
				is.close();
			}
		}
	}

	private String getFName(FileItem item) {// 获得唯一文件名,加上上传文件的扩展名
		String fn = item.getName();
		String uuid = UUID.randomUUID().toString();//得到随机唯一标识
		fn = uuid + fn.substring(fn.indexOf("."));// String提供的方法--要熟悉string的方法
		return fn;
	}

	private File getFPath() {// 得到保存上传来的文件的目录
		File f = new File("C:\\Users\\lxf99\\Desktop\\imgModel\\test");
		if (!f.exists())
			f.mkdir();
		return f;
	}
}
在线演示:http://www.ncmem.com/products/image-uploader/demo/index.html 开发文档-ASP.NET(C#):http://www.cnblogs.com/xproer/archive/2011/01/09/1931278.html 开发文档-PHP:http://www.cnblogs.com/xproer/archive/2011/05/13/2045854.html 开发文档-JSP:http://www.cnblogs.com/xproer/archive/2011/05/20/2051887.html 产品介绍:http://www.cnblogs.com/xproer/archive/2010/08/09/1796077.html 升级日志:http://www.cnblogs.com/xproer/archive/2010/10/06/1844816.html 资源下载:crx安装包,xpi安装包,exe安装包,开发文档,ASP示例,ASP.NET示例,JSP示例,PHP示例, VC运行库:http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf 新颖网络图片上传插件是一款简化图片上传操作的插件。它提供了一些灵活的配置,能够帮助用户快速搭建起一个强大的图片分享平台。通过这些配置,用户还可以非常方便的同时上传多张图片,或将图片以指定的格式上传,免去手动转换图片格式的烦恼。 在最新版的图片上传控件中采用了全新的网络数据传输模块,新的模块全面优化了网络层的数据处理代码,同时在接收服务器返回的数据代码中采用精确识别的方式使数据处理效率更高。这些改进使图片上传控件具有了闪电般的上传速度。现在新颖网络图片上传控件在上传图片时平均每张图片帮助用户节省了50%的时间。 相信新颖网络图片上传控件能够为您的应用带来更好的用户体验。 产品特点如下: 1. 基于标准HTTP协议。 2. 支持BMP,JPG,GIF,PNG图片格式。 3. 支持自动生成缩略图。 4. 支持文件批量上传。 5. 支持文件拖拽操作。 6. 支持自定义上传信息。 7. 快速编辑。旋转操作。 8. 显示上传进度。 9. 支持文件格式批量转换。 10. 支持打开默认文件夹功能。 11. 免费提供JavaScript SDK包,方便您将插件快速集成到已有网站中。 支持语言:PHP,JSP,ASP,ASP.NET(C#),ASP.NET(VB),C++,VC,VC.NET,VB,VB.NET,C#,C#.NET,Delphi,C++Builder 支持平台:Visual Studio 6.0/2002/2003/2005/2008/2010,C++ Builder 6.0/2009/2010,Delphi 7/2009,Visual Basic 6.0/2008 支持脚本:JavaScript,VBScript 支持系统:Windows NT,Windows 2003,Windows XP,Windows Vista,Windows 7,Linux 支持浏览器:IE6,IE7,IE8,IE8(x64),IE9(x64),Firefox,Chrome,360安全浏览器,360极速浏览器,Maxthon1.x,Maxthon2.x,Maxthon3.x,QQ浏览器 支持图片格式:BMP,GIF,JPG,PNG,TIF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值