jsp中实现上传图片即时显示效果功能
上传图片即时预览功能:轻松实现,一键操作
在Web开发中,为用户提供一个上传图片并即时预览的功能已经成为一种标配。这不仅提升了用户体验,也让用户更加明确他们所上传的图片是否满足要求。下面我们就来介绍一下这种功能的实现过程。
我们需要一段简单的HTML代码来创建一个文件上传的输入框以及一个用于显示预览的图片标签。代码如下:
```html
```
接下来是JavaScript代码部分,这段代码的主要功能是在用户选择图片后,将其显示在预览框中。详细实现如下:
首先定义一个函数`setImagePreview()`来处理图片上传和预览的逻辑。这个函数首先获取到文件输入框和预览图片的DOM对象。然后判断当前环境是否支持直接设置img的属性来显示图片。如果支持,那么就设置图片的显示样式,并把文件URL设置为图片的src。如果不支持(比如在IE浏览器下),那么就使用滤镜的方式来实现图片的预览。具体实现是使用`document.selection.createRange().text`来获取用户选择的图片文件的路径,然后通过设置滤镜的方式将图片显示出来。如果在这个过程中发生异常(比如用户试图通过修改文件后缀来伪造图片),那么就提示用户重新选择图片。
以下是JavaScript代码部分:
```javascript
function setImagePreview() {
var docObj = document.getElementById("doc");
var imgObjPreview = document.getElementById("preview");
if (docObj.files && docObj.files[0]) {
imgObjPreview.style.display = 'block';
imgObjPreview.style.width = '300px';
imgObjPreview.style.height = '120px';
// 在支持的环境下直接设置图片URL
imgObjPreview.src = URL.createObjectURL(docObj.files[0]);
} else {
// 在IE等不支持的环境下使用滤镜方式实现预览
docObj.select();
var imgSrc = document.selection.createRange().text;
var localImagId = document.getElementById("localImag");
localImagId.style.width = "250px";
localImagId.style.height = "200px";
try {
localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
} catch (e) {
alert("您上传的图片格式不正确,请重新选择!");
return false;
}
编程语言
- jsp中实现上传图片即时显示效果功能
- 建一个XMLHttpRequest对象池
- js方法数据验证的简单实例
- jQuery Easyui快速入门教程
- JS模式之简单的订阅者和发布者模式完整实例
- PHP命名空间namespace用法实例分析
- MySQL InnoDB 二级索引的排序示例详解
- jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
- jQuery实现长按按钮触发事件的方法
- 解析MySQL隐式转换问题
- ASP Crazy 模版操作类(最简单的模板类、仅提供交流
- Laravel关联模型中过滤结果为空的结果集(has和wi
- vueJs实现DOM加载完之后自动下拉到底部的实例代码
- 键盘扫描码[比较完整]
- 详解node.js 下载图片的 2 种方式
- angularJs中json数据转换与本地存储的实例