温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

jsp上传显示图片的方法

发布时间:2020-09-16 11:48:26 来源:亿速云 阅读:510 作者:小新 栏目:编程语言

这篇文章主要介绍jsp上传显示图片的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

之前做过一个项目,有一个功能是图片上传并且展示图片,尝试过其他的方法,但会有一个问题,那就是在IE8上图片并不能下常展示,

所以便用以下方法来上传图片,很好的解决了此问题,步骤如下:

1.上传图片页面index.jsp

<%@ page language="java" import="java.util.*,java.net.URLDecoder" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>	<meta http-equiv="pragma" content="no-cache">	<meta http-equiv="cache-control" content="no-cache">	<meta http-equiv="expires" content="0">	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">	<meta http-equiv="description" content="This is my page">	<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>	<script type="text/javascript" src="js/ajaxupload.js"></script>	<!--	<link rel="stylesheet" type="text/css" href="styles.css">	--> </head> <body> <script type="text/javascript"> $(function(){	//上传图片	new AjaxUpload('#addLabProdPic', {	action: 'upload.jsp',	name: 'picFile',	responseType: 'json',	onSubmit : function(file , ext){	if (ext && /^(jpg|png|bmp)$/.test(ext.toLowerCase())){	this.setData({	'picName': file	});	} else {	alert("请上传格式为 jpg|png|bmp 的图片!");	return false;	}	},	onComplete : function(file,response){	if(response.error) {	alert(response.error);	return;	}	//alert(response.picUrl);	show(response.picUrl);	}	}); }) function show(path){ if(document.all)//IE { //path = "D:/upload/11.png"; document.getElementById("imgPreview").innerHTML=""; document.getElementById("imgPreview").style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='scale',src=\"" + path + "\")";//使用滤镜效果www.2cto.com } else//FF { //path = "D:/upload/11.png"; //document.getElementById("imgPreview").innerHTML = "<img id='img1' width='120px' height='100px' src='"+path+"'/>"; document.getElementById("img1").src = path; } }; </script> <h2>Ajax文件上传例子,选择图片后立即上传,无需点击上传按钮</h2>	<button id="addLabProdPic">选择图片</button>	<br>	<div id="imgPreview" style='width:120px; height:100px;'>	<img id="viewImg" width="200px" height="200px;">	</div> </body> </html>

2.上传图片后台处理业务upload.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@page import="java.io.PrintWriter,java.io.File,org.apache.commons.fileupload.FileItem,org.apache.commons.fileupload.disk.DiskFileItemFactory,org.apache.commons.fileupload.servlet.ServletFileUpload" %> <% System.out.println("///////"); // dfif对象为解析器提供解析时的缺省的一些配置	DiskFileItemFactory dfif = new DiskFileItemFactory(); // 创建解析器	ServletFileUpload sfu = new ServletFileUpload(dfif); sfu.setHeaderEncoding("utf-8");//解决了上传图片如果为中文就是乱码问题 String loadpath="D:/upload";//上传文件存放目录(此路径是将上传的文件放在本地的硬盘上) String filName=""; try{	// 开始解析(分析InputStream)	// 每一个表单域当中的数据都会	// 封装到一个对应的FileItem对象上。	List<FileItem> items = sfu.parseRequest(request);	for (int i = 0; i < items.size(); i++) {	FileItem item = items.get(i);	// 要区分是上传文件域还是普通的表单域	if (item.isFormField()) {	// 普通表单域	String name = item.getString();	filName=name;	System.out.println("name:" + name);	} else {	// 上传文件域	// ServletContext:servlet上下文对象。	ServletContext sctx = getServletContext();	// 获得原始的文件名	String filename = item.getName();	File loadFolder = new File(loadpath);	if (!loadFolder.exists()) {	loadFolder.mkdirs();	}	File file = new File(loadFolder + "\\" + filename);	item.write(file);	}	}	String result=loadpath+"/"+filName;	PrintWriter writer = response.getWriter();	writer.print("{");	//writer.print("msg:\"文件大小:"+item.getSize()+",文件名:"+filename+"\"");	writer.print("picUrl:\"" + result + "\"");	writer.print("}");	writer.close(); }catch(Exception e){	e.printStackTrace(); } %>

3.所需主要文件ajaxupload.js

这部分缺失,导致交互出现问题,所以需要大家摸索了,加油。

以上是jsp上传显示图片的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jsp
AI