`

点击图片上传图片并显示

    博客分类:
  • html
阅读更多
这几天在做一个图片上传的功能,说实话没想到这个功能用了我那么长的时间。
项目原来有图片上传功能,具体的做法是选择上传图片,弹出一个文件上传窗口,里面有几个文件上传按钮,选好要上传的文件后点击“上传”,文件上传到服务器,返回一个jsp页面,jsp页面自动执行在后台设定的js方法,将父窗口对应img标签的src属性修改。
现在要做改进,不通过弹出窗口,点击页面上的一个缩略图片,弹出文件选择,选择好文件后自动上传图片并将图片和对应大图显示为上传的图片。
刚开始我设想的很简单:
   1. 在页面中加入隐藏input type="file"标签,定义其onchange事件
   2. 定义缩略图的onclick事件,触发file的click事件
   3. 定义uploadFile方法,使用ajaxUploadFile控件将文件上传
   onchange方法触发本地图片预览方法,触发uploadFile方法
这样做在ff和chrome下都没有问题,但是在用ie浏览器测试的时候就不行了,原因是uploadFile方法执行时没有向后台发送数据,查了之后才知道原来ie浏览器为了安全性考虑对file上传只用鼠标点击file标签才会有效,通过js触发file标签的click方法行不通。
郁闷,ie太挫了
好吧,要改进也挺简单就是把file标签设成透明的,和img放在一起,并设置width,height把它撑大,这样点击图片的时候触发的实际上就是file标签的click事件了
这下文件向后台上传没问题了,但是用ie测试的时候还是出问题了,就是图片预览的时候我获取了file的本地路径,用js改变img的src属性出了个很奇怪的问题:有的图片可以显示,有的不能显示,而且不能显示的图片src修改后为空
网上查解决方法,说是用滤镜可以显示,
if (file.files && file.files[0]) {
		var reader = new FileReader();
		reader.onload = function(evt) {//火狐chrome...
			img.style.backgroundImage = "url('" + evt.target.result + "')";
			img.src = evt.target.result;
		}
		reader.readAsDataURL(file.files[0]);
	} else // 兼容IE
	{
		var imgSrc = document.selection.createRange().text;
		img.src="";
		img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=bEnabled,sizingMethod='scale')";
		img.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
	}

试了下,显示倒是可以显示,但是图片角上有个红色的小叉号,怎么看怎么难看,不过功能倒是全了,先放着吧
另外还有一中解决方法就是用div的背景模拟img,这样可以用js修改div的backgroundImage的url来达到显示图片的效果,但是在ie下背景图片的大小无法控制,超级难看!


本地预览效果达不到,退而求其次,经过尝试先将图片上传上去,根据返回的url修改img的src可以达到效果(这个跟上面ie用js修改src属性方法一样,但是返回的是http://...jpg)
要注意一点
ajax获取servlet返回值如果文本中包含'&',在ajax中解析出来会是"$amp;"所以要处理一下。
分享到:
评论

相关推荐

    java上传图片后立即将图片显示出来

    综上所述,"java上传图片后立即将图片显示出来"这一功能的实现涉及到Java的文件上传处理、IFrame技术的运用、前端JavaScript的交互以及服务器端的文件管理和安全控制等多个方面。理解这些关键点对于开发高质量的Web...

    asp.net实现点击图片控件上传图片并更新自身

    这个Handler会负责保存上传的图片,并返回新的图片URL供客户端更新图片显示: ```csharp public class Upload : IHttpHandler { public void ProcessRequest(HttpContext context) { if (context.Request.Files....

    上传图片,显示小图,点击小图显示大图

    这个场景描述了一个典型的图片管理流程,包括图片上传、压缩显示小图以及点击小图弹出大图的功能。以下是对这些知识点的详细解释: 1. **图片上传**:用户在界面中选择本地图片后,通过HTTP或HTTPS协议将图片数据...

    点击图片上传并显示(弹性盒布局,包含html版本和vue版本)

    本项目提供了一个实现图片上传并显示的解决方案,它结合了HTML、CSS、JavaScript以及Vue.js技术栈,实现了点击上传、拖拽上传、多选图片以及图片显示等功能,并对上传的图片格式和大小进行了限制,适用于教学或演示...

    struts2图片上传并生成缩略图,展示缩略图点击显示大图

    在这个场景中,我们将关注如何使用Struts2框架结合FileUpload库来实现图片上传,并通过生成缩略图来优化用户体验。Struts2是一个流行的Java Web框架,它提供了一种结构化的方式来处理用户请求,而FileUpload则是处理...

    phpcms_v9 后台上传图片按钮无法点击

    在PHP CMS v9系统中,用户可能会遇到一个棘手的问题:后台上传图片的按钮变得无法点击。这个问题主要是由于现代浏览器逐渐淘汰对Flash的支持所引起的。Flash曾是网页中用于多媒体内容展示的重要技术,但因其安全性和...

    EXT 上传图片 删除图片,显示图片,PHP

    3. **图片显示** EXT中,图片可以通过`Ext.image.Image`组件展示。在接收到服务器返回的已存储图片的URL后,可以创建一个新的Image组件,将该URL设置为`src`属性。这通常在服务器响应成功后,由EXT的控制器更新视图...

    TinyMCE自定义上传图片

    3. **回调处理**:当图片上传成功,服务器通常会返回一个URL或其他标识符,用于在编辑器中显示图片。自定义插件需要处理这个回调,将返回的URL插入到编辑器内容中。 4. **错误处理**:如果上传失败,插件应提供适当...

    datagrid显示图片并点击放大浏览样式文件.zip

    在本文中,我们将深入探讨如何在基于EasyUI和TopJUI的Web应用程序中,使用datagrid组件来显示图片,并实现点击图片后放大浏览的功能。这个压缩包文件包含了实现这一功能所需的CSS样式文件、JavaScript脚本以及图片...

    简单的servlet+jsp图片上传并显示图片解压就可用

    在本文中,我们将深入探讨如何使用Servlet和JSP实现一个简单的图片上传并显示的功能。Servlet是一种Java编程技术,常用于扩展服务器的功能,处理HTTP请求,而JSP(JavaServer Pages)则是一种动态网页技术,可以方便...

    解决BugFree上传图片不能显示问题

    在使用BugFree的过程中,用户可能会遇到上传图片后无法正常显示的问题,这通常是由配置不当或者端口冲突导致的。下面将详细解释这个问题的原因以及提供一种可能的解决方案。 1. **问题原因**: - **端口冲突**:...

    ASP.NET上传图片至数据库并显示图片

    在 ASP.NET 中,处理图片上传和显示是常见的需求,特别是对于那些需要用户交互和数据存储的应用,如个人相册、社交媒体等。 首先,我们来看第一种方法,即存储图片的相对路径到数据库。这种方法的优点在于实现简单...

    二进制流形式上传图片,然后前台显示图片示例(vs2005+sql2005)

    五、图片显示 在前端显示图片时,需要从数据库中检索图片的二进制数据,然后将其以HTTP响应的方式发送给浏览器。在VS2005中,你可以创建一个HTTP Handler (.ashx) 文件来处理这个请求。在Handler中,读取数据库中的...

    基于java的图片上传以及显示

    这个基于Java的小项目,结合了JSP(JavaServer Pages)技术,实现了用户能够上传图片,后台存储这些图片的信息到MySQL数据库,并在前端列表中展示图片,同时提供删除图片的功能。下面我们将详细探讨这个项目中的关键...

    移动端点击放大、缩放图片,微信端点击放大图片

    - HTML元素:通常我们会使用`<img>`标签来显示图片,并为其添加`onclick`事件监听器,当用户点击图片时触发放大操作。 - CSS样式:通过修改`transform: scale()`属性,我们可以改变图片的大小。点击后,将图片的...

    破解版phpweb上传图片不显示或者上传logo显示x

    使用FTP客户端,右键点击图片目录,调整其权限设置。 2. **编码问题**:图片文件名可能包含非ASCII字符,这可能导致在某些服务器环境下无法正确识别。确保文件名只包含英文字符和数字,避免特殊符号。 3. **MIME...

    springboot上传图片并回显

    本文将深入探讨如何使用Spring Boot实现这一功能,包括上传图片、存储图片以及回显显示。 首先,我们需要引入相关的依赖。Spring Boot默认集成了Spring MVC,因此我们可以在`pom.xml`或`build.gradle`文件中添加...

    PHP-多图片上传,分页显示

    在PHP开发中,多图片上传和分页显示是常见的功能需求,尤其在处理用户上传的媒体内容时。本文将详细讲解如何实现这个功能,并提供关键的代码片段。 首先,我们来了解一下多图片上传的实现过程: 1. **前端表单设计...

    点击图片打开上传选择

    在IT行业中,"点击图片打开上传选择"是一个常见的交互功能,尤其在网页和应用程序设计中。这个功能允许用户通过点击一个图片或者按钮来触发文件选择对话框,以便上传他们想要分享或使用的图片文件。以下是对这个功能...

    ueditor上传图片到阿里云oss服务器

    在IT行业中,将图片上传至云存储服务是常见的需求,特别是在网站内容管理或者富文本编辑器的场景下。本文将详细讲解如何使用ueditor这款流行的富文本编辑器将图片上传到阿里云对象存储服务(OSS)。 ueditor是一款...

Global site tag (gtag.js) - Google Analytics