jsp中点击图片弹出文件上传界面及预览功能的实现_JSP编程

花了两天时间琢磨一下图片预览的功能

任务需求如下:

1:jsp页面中有一个图片(pic_1)
2:点击图片弹出类似于资源管理器的界面
3:选择完某一个图片之后在pic_1处预览

我在IE8上试验下面这段代码,可以实现上述功能,没有在别的浏览器中测试,如果各位朋友知道多种浏览器的支持方法,请赐教,共同学习,谢谢。

复制代码 代码如下:

<!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>
<script type="text/javascript">
function tempClick(){

/**
* 火狐浏览器实现点击图片出现文件上传界面
* var a=document.createEvent("MouseEvents");
* a.initEvent("click", true, true);
* document.getElementById("upload_main_img").dispatchEvent(a);
*/

//IE浏览器实现点击图片出现文件上传界面
document.getElementById('main_img').click(); //调用main_img的onclick事件
}

/**
* 预览图片
* @param obj
* @returns {Boolean}
*/
function PreviewImg(obj) {

var newPreview = document.getElementById("img_2");
var imgPath = getPath(obj);
alert(imgPath);
if( !obj.value.match( /.jpg|.gif|.png|.bmp/i ) ){
alert("图片格式错误!");
return false;
}

newPreview.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgPath;
}

/**
* 得到图片绝对路径
* @param obj
* @returns
*/
function getPath(obj){
if(obj) {
if(navigator.userAgent.indexOf("MSIE")>0) {
obj.select();
//IE下取得图片的本地路径
return document.selection.createRange().text;
} else if(isFirefox=navigator.userAgent.indexOf("Firefox")>0) {
if (obj.files) { // Firefox下取得的是图片的数据
return files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
}
</script>
</head>
<body>
<form>
<div><input type="file" style="position: absolute; filter: alpha(opacity = 0); opacity: 0; width: 30px;" size="1" id="main_img" name="main_img" onchange="PreviewImg(this)"></div>
<div id="img_2" style="width:133px;height:95px; cursor:pointer; background-image: url('Chrysanthemum.jpg');" onclick="tempClick()"></div>
</form>
</body>
</html>

简单的对代码做一下讲解:
input type="file" 这个元素我试过让style隐藏(style=“display:none”),这样就不能或得到绝对路径,而是fakepath,为了不让它显示出来就让他100%的透明,下面有一个div,id为img_2,这个div是页面初始图片,点击这个图片调用input type="file" 中的方法,实现此功能。 

能力有限,还请各位指教,有更好的方法请提供给我,共同学习,Thanks。

时间: 2024-10-31 13:42:52

jsp中点击图片弹出文件上传界面及预览功能的实现_JSP编程的相关文章

Ajax上传图片及上传前先预览功能实例代码

手头上有几个小项目用到了easyUI,一开始决定使用easyUI就注定了项目整体上前后端分离,基本上所有的请求都采用Ajax来完成.在文件上传的时候用到了Ajax上传文件,以及图片在上传之前的预览效果,解决了这两个小问题,和小伙伴们分享下. 上传之前的预览 方式一 先来说说图片上传之前的预览问题.这里主要采用了HTML5中的FileReader对象来实现,关于FileReader对象,如果小伙伴们不了解,可以查看这篇文章HTML5学习之FileReader接口.我们来看看实现方式: <!DOCT

Jsp页面实现文件上传下载类代码第1/2页_JSP编程

刚才和lp看完电影,把jsp页面抽出class调整了一下.最近总上经典,是感觉既然当了斑竹,就该留下点什么.lp这几天也半开玩笑半生气的说,一回来就上经典,就发帖,你干脆娶经典作lp得了.想想,这几天是有点夸张,以后放慢速度了.保持1星期1帖吧,那样也能多想写,多总结些.发帖的初衷就是有时候看到有的朋友问的问题,似乎还没有走进java的门,希望这样的帖子,能对新手一点帮助,也就满足了.有时候随意的一段话,其实也是自己的一点经验,而有时候之所以絮絮叨叨,是想把问题说的清楚明白,让高手见笑了.因为在

分离与继承的思想实现图片上传后的预览功能:ImageUploadView_javascript技巧

本文要介绍的是网页中常见的图片上传后直接在页面生成小图预览的实现思路,考虑到该功能有一定的适用性,于是把相关的逻辑封装成了一个ImageUploadView组件,实际使用效果可查看下一段的git效果图.在实现这个组件的过程中,有用到前面几篇博客介绍的相关内容,比如继承库class.js,任意组件的事件管理库eventBase.js,同时包含进了自己对职责分离,表现与行为分离这两方面的一些思考,欢迎阅读与交流. 演示效果: 注:由于演示的代码都是静态的,所以文件上传的组件是用setTimeout模

jquery实现图片上传前本地预览功能_jquery

本文实例为大家分享了jquery实现图片上传前预览的具体代码,供大家参考,具体内容如下 介绍之前有一个小问题,一直找不到图片预览时,图片不出来的原因,原来在于图片的路径!!!一直写的是图片的本地路径,没有什么用.直接上代码. html部分: 复制代码 代码如下: <img id="pic" src="" > <input id="upload" name="file" accept="image/*

Web实现点击图片弹出上传文件窗口代码

通过一些代码可以简单的实现点击图片弹出上传文件窗口,省去使用fileupload标签,具体的实现如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助     复制代码 代码如下: <style> .fileInputContainer{ height:256px; background:url(upfile.png); position:relative; width: 256px; } .fileInput{ height:256px; overflow: hidden; font-size:

id 成数组的传值-jsp弹出框传值问题(一个jsp 点击按钮弹出另一个jsp,选中记录带回数据显示在指定框中)

问题描述 jsp弹出框传值问题(一个jsp 点击按钮弹出另一个jsp,选中记录带回数据显示在指定框中) 如图,共有两个jsp: 一:add.jsp:二:select.jsp 其中在add.jsp上点击请选择按钮,弹出select.jsp页面,选择之后点击确定,应该如何将值传递回来,我知道是那个通过url携带参数,但是我一直写不对.下面附上两个jsp页面的源码: ## # [1.add.jsp]: <script> function openwindow(){ window.showModalD

AJAX和JSP实现的基于WEB的文件上传的进度控制代码第1/2页_AJAX相关

1.引言 2.实现代码 2.1.服务器端代码 2.1.1. 文件上传状态类(FileUploadStatus) 2.1.2. 文件上传状态侦听类(FileUploadListener) 2.1.3. 后台服务类(BackGroundService) 2.1.4. 文件上传状态控制类(BeanControler) 2.2. 客户端代码 2.2.1. AjaxWrapper.js 2.2.2. fileUpload.html 2.2.3. result.jsp 2.2.4. fileUpload.c

javafx-使用JavaFX如何实现 点击按钮选择本地文件上传到服务器

问题描述 使用JavaFX如何实现 点击按钮选择本地文件上传到服务器 请问大神 使用JavaFX如何实现 点击按钮选择本地文件上传到服务器 JavaFX貌似没有这个UI控件 求帮忙! 类似如下图片所示 解决方案 点击按钮实现文件上传

android-Android 在工具类里面要弹出一个上传成功

问题描述 Android 在工具类里面要弹出一个上传成功 Android 在工具类里面要弹出一个上传成功 Context 怎么赋值 解决方案 我谈的是toast toast里面要一个context,context一直报空,我是man方法里面调用了照相这个工具类,照相完后再调用上传这个工具类,就是上传工具类弹出上传成功的时候一直报null 解决方案二: 弹dialog传入activity咯... 吐司传啥都行吧 解决方案三: 你可以试试在Toast里传这个activity类.this;不要传get