您的位置:首页 > Web前端 > JavaScript

JSP+Servlet中使用cos.jar进行图片上传(文件上传亦然)

2018-01-12 13:51 525 查看
关于cos.jar,百度百科只有这么几句话(http://baike.baidu.com/subview/40658/10049893.htm):

COS,是Java HTTP文件上传组件。

O’Reilly公司的Java HTTP文件上传组件,简单实用,做的非常好。

COS 很久没更新了,不过这东西也没什么好更新的。

在与jspSmartUpload和FileUpload的性能比较中完美胜出,建议对性能要求比较高时选择使用。

对于Cos和FileUpload、SmartUpload的性能比较,请参考:http://www.thinksaas.cn/group/topic/176986/

使用com.oreilly.servlet.MultipartRequest类进行文件上传,该类在实例化的过程中就完成了上传文件的过程。就是这么简单粗暴!

(1)将cos.jar复制到【工程名\WebRoot\WEB-INF\lib】下

(2)新建JSP(上传:upload.jsp、回显:image.jsp)

文件上传的前提:

表单的method必须是post方式。

表单的enctype必须是multipart/form-data。

表示的File类型的input,必须有name属性,值不重要可以随便写。

(参考:《文件上传与下载 解密》 http://yidongkaifa.iteye.com/blog/1737295

(2.1)新建upload.jsp(用于上传)

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file1"> <input type="submit">
</form>
</body>
</html>


(2.2)新建image.jsp(用于回显)

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<img alt="" src="image/${filename}">
</body>
</html>


(3)【工程名\WebRoot】下新建文件夹【image】(如果不是在MyEclipse中建立,记得刷新让其显示,否则部署文件中不生成)

(4)新建Servlet(servlet.Upload.java)

package servlet;

import java.io.IOException;
import java.util.Enumeration;

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 com.oreilly.servlet.MultipartRequest;

@WebServlet("/upload")
public class Upload extends HttpServlet {
private static final long serialVersionUID = 1L;

public Upload() {
super();
}

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

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 真正使用的是:部署文件夹\webapps\工程名\image
String path = this.getServletContext().getRealPath("image/");

MultipartRequest res = new MultipartRequest(request, path, 1024 * 1024, "utf-8");
Enumeration enu = res.getFileNames();
String filename = null;
while (enu.hasMoreElements()) {
// 上传文件文本框的名字
filename = (String) enu.nextElement();
// 获得图片的名字
filename = res.getFilesystemName(filename);
}
request.setAttribute("filename", filename);// 放到request范围
request.getRequestDispatcher("image.jsp").forward(request, response);
}

}


JSP+Servlet中使用jspsmartupload.jar进行图片上传下载:

http://www.cnblogs.com/AndyHoo/p/6250346.html

原文地址:https://www.cnblogs.com/AndyHoo/p/5191502.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: