上传下载图片代码jsp,上传图片的代码
更新:2022-11-17 14:07
本文目录一览:
1、jsp中如何编写代码实现图片的上传下载
2、jsp上传图片,最好完整代码。100分!
3、JSP如何上传图片?
4、JSP如何上传图片
5、[Jsp上传图片到指定文件夹下 求详细代码](#Jsp上传图片到指定文件夹下 求详细代码)
6、通过JSP怎样上传图片到服务器
jsp中如何编写代码实现图片的上传下载
图片的上传一般是用组件做的,一般不会用jsp去编写,比较常见的图片上传组件有smartUpload,struts框架的file-common-upload等。 试着学习一下吧,很简单好使。
jsp上传图片,最好完整代码。100分!
upfile.jsp
文件代码如下:
<form method="post" action="uploadimage.jsp" name="form1" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" name="sub" value="upload">
</form>
uploadimage.jsp
文件代码如下:
<%@ page language="java" pageEncoding="gb2312"%>
<%@ page import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,com.jspsmart.upload.*,java.util.*"%>
<%@ page import="mainClass.*" %>
<html>
<head>
<title>My JSP 'uploadimage.jsp' starting page</title>
</head>
<body>
<%
SmartUpload sma = new SmartUpload();
long file_max_size = 4000000;
String filename1 = "", ext = "", testvar = "";
String url = "uploadfiles/";
sma.initialize(pageContext);
try {
sma.setAllowedFilesList("jpg,gif");
sma.upload();
} catch (Exception e) {
%>
<script language="jscript">
alert("只允许上传jpg,gif图片");
window.location.href = "upfile.jsp";
</script>
<%
}
try {
com.jspsmart.upload.File myf = sma.getFiles().getFile(0);
if (myf.isMissing()) {
%>
<script language="jscript">
alert("请选择要上传的文件!");
window.location.href = "upfile.jsp";
</script>
<%
} else {
ext = myf.getFileExt();
int file_size = myf.getSize();
String saveurl = "";
if (file_size < file_max_size) {
Calendar cal = Calendar.getInstance();
String filename = String.valueOf(cal.getTimeInMillis());
saveurl = request.getRealPath("/") + url;
saveurl += filename + "." + ext;
myf.saveAs(saveurl, sma.SAVE_PHYSICAL);
myclass mc = new myclass(request.getRealPath("data/data.mdb"));
mc.executeInsert("insert into [path] values('uploadfiles/" + filename + "." + ext + "')");
out.println("图片上传成功!");
response.sendRedirect("showimg.jsp");
}
}
} catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html>
本文来自: IT知道网() 详细出处参考:
JSP如何上传图片?
如果你是纯JSP写的,可以用SmartUpload。在你的页面form里:
<form action="doUpload.jsp" method="POST" enctype="multipart/form-data">
文件名:<input type="text" name="name"/><br>
请选择上传的文件:<input type="file" name="file1"/>
<input type="submit" value="上传"/>
</form>
注意:enctype="multipart/form-data"
这个一定要这样设置,具体什么意思我也不是很清楚.....
提交到执行的页面如下:
// 实例化上传组件
SmartUpload upload = new SmartUpload();
// 初始化上传组件
upload.initialize(this.getServletConfig(), request, response);
// 开始上传
upload.upload();
// 获取上传的文件列表对象
Files f = upload.getFiles();
// 获取文件对象
File fil = f.getFile(0);
// 去掉文件后缀
String ext = fil.getFileExt();
// 判断文件类型是否是jpg格式jpg,gif,bmp,png,JPG,GIF,BMP,PNG
if (!(ext.equals("jpg")) && !(ext.equals("gif")) && !(ext.equals("bmp")) && !(ext.equals("png")) && !(ext.equals("JPG")) && !(ext.equals("GIF")) && !(ext.equals("BMP")) && !(ext.equals("PNG"))) {
out.println("<script type='text/javascript'>alert('文件类型错误');location.replace('upLoadPhoto.jsp');</script>");
return;
}
// 满足条件进行文件的上传uploadImages在webRoot文件夹下的一个目录
fil.saveAs("uploadImages/" + fil.getFileName());
String filepath = "uploadImages/" + fil.getFileName(); // 保存到数据库的路径
JSP如何上传图片
请几天写了一个、代码给你看看、说明下:这有两个文件夹、都在Web容器(Tomcat)的根目录下、一个临时文件夹、一个保存上传文件的文件夹、
UploadFile.java
-----用于上传的servlet
public class UploadFile extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("GBK");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// 允许上传的文件格式的列表
final String[] allowedExt = new String[] { "jpg", "jpeg", "gif" };
// 这里对request进行封装,RequestContext提供了对request多个访问方法
RequestContext requestContext = new ServletRequestContext(request);
// 判断表单是否是Multipart类型的
if (FileUpload.isMultipartContent(requestContext)) {
// 实例化一个硬盘工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置缓存区的大小
factory.setSizeThreshold(1024 * 1024);
// 设置目标临时文件夹
String temp = this.getServletContext().getRealPath("/") + "FileTemp";
// 设置目标文件夹路径
String path = this.getServletContext().getRealPath("/") + "File";
// 设置上传文件夹路径
factory.setRepository(new File(temp));
// 上传组件
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置文件上传的大小
upload.setFileSizeMax(3 * 1024 * 1024);
List<FileItem> fileList = null;
try {
// 获取文件列表
fileList = upload.parseRequest(request);
} catch (FileUploadException e) {
if (e instanceof SizeLimitExceededException) {
out.println("文件尺寸超过规定大小:" + 3 * 1024 * 1024 + "字节</p>");
return;
}
e.printStackTrace();
}
// 得到所有上传文件
Iterator<FileItem> it = fileList.iterator();
while (it.hasNext()) {
// 得到系统时间
long now = System.currentTimeMillis();
// 将long类型转换为String类型
String prefix = String.valueOf(now);
FileItem fileItem = (FileItem) it.next();
// 得到文件的后缀
String postfix = fileItem.getName().substring(fileItem.getName().lastIndexOf(".") + 1);
// 拒绝接受规定文件格式之外的文件类型
int allowFlag = 0;
int allowedExtCount = allowedExt.length;
for (; allowFlag < allowedExtCount; allowFlag++) {
if (allowedExt[allowFlag].equals(postfix))
break;
}
if (allowFlag == allowedExtCount) {
out.println("请上传以下类型的文件</p> ");
for (allowFlag = 0; allowFlag < allowedExtCount; allowFlag++)
out.println("*." + allowedExt[allowFlag] + " ");
return;
}
// 保存文件,其实就是把缓存里的数据写到目标路径下
File newFile = new File(path + "/" + prefix + "." + postfix);
// 文件列表为空
if (fileItem.getName() == null || fileItem.getName() == "") {
out.println("请选择上传文件</p> ");
}
try {
if (newFile.createNewFile())
fileItem.write(newFile);
} catch (Exception e) {
e.printStackTrace();
}
out.println("文件上传成功. 已保存为: " + prefix + "." + postfix + " 文件大小:" + fileItem.getSize() + "字节</p> ");
}
}
out.flush();
out.close();
}
}
由于篇幅太长、有些代码已省去、至于储存图片名到数据、这个很简单、、那里已经取到文件名、插入到数据库应该很简单、这里我不副累赘、再赠送两个、一个下载、一个删除、知道就跳过吧、
DownloadFile.java
-------用于下载的servlet
public class DownloadFile extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
FileBiz fileBiz = new FileBiz();
request.setCharacterEncoding("GBK");
// 获取要下载的文件名
String fileName = request.getParameter("filename");
// 获取文件的绝对路径
String fileDir = this.getServletContext().getRealPath("/File");
/**
* 设置MS下载页头
*/
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment;" + " filename=" + fileName);
// 把方法写在另一个类里面了、
fileBiz.download(response.getOutputStream(), fileDir, fileName);
}
// 下载文件
public void download(OutputStream os, String fileDir, String fileName) {
try {
InputStream is = new FileInputStream(fileDir + "/" + fileName);
int hasRead = 0;
byte[] buffer = new byte[4096];
while ((hasRead = is.read(buffer, 0, buffer.length)) != -1) {
os.write(buffer, 0, hasRead);
}
os.flush();
os.close();
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
System.out.println("下载中文件数据传输出错");
e.printStackTrace();
}
}
}
下载没什么好说的、注意传过来的filename就行了、
DeleteFile.java
------用于删除的servlet
public class DeleteFile extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("GBK");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// 获取要删除的文件名
String fileName = request.getParameter("filename");
// 获取文件的绝对路径
String fileDir = this.getServletContext().getRealPath("/File");
if (fileBiz.delete(fileDir, fileName))
out.println("删除成功");
else
out.println("删除失败");
}
// 删除文件
public boolean delete(String fileDir, String fileName) {
return new File(fileDir + "/" + fileName).delete();
}
}
删除文件更简单、一行代码的事情、 其实这些都是基于流的操作、还有很过方法等着我们去尝试吧、 至于jar包的话、安装时应该有、没有百度一下、到处都是、还有一种方式上传、下载、没试过、用的是jspSmartUpload包、有时间研究研究、 代码有点多、多点乱、但、也没办法了、希望你能看明白、 就这样了、祝你好运、
Jsp上传图片到指定文件夹下 求详细代码
String time = new SimpleDateFormat("yyyyMMddHHmmss")
.format(Calendar.getInstance().getTime());// 得到系统时间
// 上传技术
SmartUpload up = new SmartUpload();
// 进行初始化
up.initialize(this.getServletConfig(), request, response);
// 开始上传
try {
up.upload("utf-8");// 设置编码方式。
int id = Integer.parseInt(up.getRequest().getParameter("id"));// 商品编号
SmartFiles sf = up.getFiles();// 得到上传的所有图片
SmartFile file = sf.getFile(0);// 根据索引得到上传图片 多个图片可以用循环:
String type = file.getFileExt();// 得到图片后缀名
String folder = "tp/";// 指定文件夹
String path = folder + time + "." + type;// 路径
System.out.println(path + "路径");
file.saveAs(request.getRealPath("/") + path);// 保存图片
} catch (Exception e) {
e.printStackTrace();
}
// 你搞个邮箱我把SmartUpload jar包 发给你吧。 // 设置from提交
<form action="SellerServet" method="post" enctype="multipart/form-data">
// 加上 enctype="multipart/form-data"
通过JSP怎样上传图片到服务器
- 限制文件上传类型只能是图片
function checkFileType(name, file) {
var extArray = new Array(".doc", ".docx");
var allowSubmit = false;
if (!file) {
return;
}
while (file.indexOf("\\") != -1) {
file = file.slice(file.indexOf("\\") + 1);
}
var ext = file.slice(file.indexOf(".")).toLowerCase();
for (var i = 0; i < extArray.length; i++) {
if (extArray[i] == ext) {
allowSubmit = true;
break;
}
}
if (!allowSubmit) {
alert("只能上传以下格式的文件:" + (extArray.join("")) + "\n请重新选择再上传.");
document.getElementById(name).value = "";
}
}
其中:extArray
是要求文件类型。可自行定义。
2. 引入jQuery外部文件
jquery-2.1.4.min.js
- 编写js代码
$(function () {
$('#txtfilePath1').uploadReview({
width: 350,
height: 350,
target: '#uploadReview1_content'
});
});
其中:txtfilePath1
是<input:file>
。width
、height
是预览图片的宽度和高度。target
是显示预览图片的位置。
4. 编写jsp页面代码
<body>
<input type="text" class="yourClassName" name="filePath1" id="filePath1"/>
<input type="file" id="txtfilePath1" name="txtfilePath1" style="display:none;"/>
<input type="button" onclick="txtfilePath1.click()" id="fileup1" name="fileup1" class="searchThing" value="上传"/>
</body>
注: 这个是很久以前在网上看到的,就整理了下来,但是这么久都没用过,所以也没调试过,你自己试一试研究研究, 再来网上很多博客里,他们写的很详细的,可以去看看