1.先创建一个file表单域,我们需要用它来浏览本地文件。

2.试下效果:

判断文件类型:

当用户选择了一个图片文件时,希望他能马上看到这张图片的缩略图,以便他能确认没有把自己的光屁股照片当作头像传到服务器上^_^。

在预览之前还得先判断一下用户选择的是不是一个图像文件,如果他想用一个.rar文件做头像的话我们也需要礼貌地提醒一下。

οnchange="preview()" />

Javascript函数实现,注意使用DOM方法getElementById来访问对象。不要再使用form

和input的name属性来访问对象了,只有IE才这么干。

function preview2(){

var x = document.getElementById("file2");

if(!x || !x.value) return;

if(x.value.indexOf(".jpg")<0

&& x.value.indexOf(".jpeg")<0

&& x.value.indexOf(".gif")<0){

alert("您选择的似乎不是图像文件。");

}else{

alert("通过");

}

}

3.试下效果:

这里有一个问题,如果用户选择了名为“fake.jpg.txt”的文件,这段脚本仍旧会认为这是一个合法的图像文件。一个可行的解决方案是先 把文件名转换成小写,再取文件路径的最后4到5位,判断一下文件的扩展名是否确为支持的图像文件扩展名。不过这种方案略显笨拙,也没有什么美感可言, 我们换一种方案:用“正则表达式”来判断文件扩展名。

function preview3(){

var x = document.getElementById("file3");

if(!x || !x.value) return;

var patn = /\.jpg$|\.jpeg$|\.gif$/i;

if(patn.test(x.value)){

alert("通过");

}else{

alert("您选择的似乎不是图像文件。");

}

}

4.看看效果(可以自己创建一个“fake.jpg.txt”文件试试):

回到这段脚本上来,即使你还看不懂正则表达式那两行,但整段脚本的美感还是很明显的:简洁、直接、语义流畅,这与Web标准关于XHTML的要求是一致的,与Web设计师或开发者天生的“完美”主义也是一致的。

jjww一大段之后,转入重点——预览图片

预览功能的基本设计思路是很清晰的:创建一个img元素,再把文件域的value值赋值给img

元素的src属性。

οnchange="preview4()" />

function preview4(){

var x = document.getElementById("file4");

var y = document.getElementById("pic4");

if(!x || !x.value || !y) return;

var patn = /\.jpg$|\.jpeg$|\.gif$/i;

if(patn.test(x.value)){

y.src = "file://localhost/" + x.value;

}else{

alert("您选择的似乎不是图像文件。");

}

}

5.试下效果:

如果用的是Firefox(或Opera),可能会发现什么也没有发生。是的,很不幸Firefox的安全策略不允许显示一个用户的本地 图像文件。不知道为什么要这么做,个人觉得图像文件并不会造成严重的安全性问题。即使是不久前比较热门的那个会引起Windows崩溃的jpeg文 件,要显示它的前提条件是用户自己选择了这个文件或者你知道这个文件在用户硬盘上的准确路径。所以我想这种策略很可能来自于一个“懒惰”的开发人员,并 不想多写一些程序来区分这个本地文件是一个图像文件还是一个恶意文件,Firefox对安全性的要求让他们有些过于敏感了。

让Firefox显示本地文件的唯一办法就是修改它的默认安全策略:

在Firefox的地址栏中输入“about:config”

继续输入“security.checkloaduri”

双击下面列出来的一行文字,把它的值由true改为false

然后你可以再试试上面预览,everything works well!可惜的是并不能要求所有的用户都去修改这个值(更不用说修改的过程还挺麻烦),所以毫无意义。我们能做的也许就是接受Firefox不能预览本地图片这种“可笑”的局面。

用DOM来创建对象

在上面的XHTML代码中,为了预览图片,事先加入了一个没有设置src的img对象。除去不美观、代码冗余之外,如果用户浏览器不支持 Javascript,不仅无法使用这个功能,还要接受页面上一个永远不会显示出来的破图。要解决这个问题,就需要在“运行时”再生成这个img对 象,途径还是DOM。

οnchange="preview5()"/>

function preview5(){

var x = document.getElementById("file5");

if(!x || !x.value) return;

var patn = /\.jpg$|\.jpeg$|\.gif$/i;

if(patn.test(x.value)){

var y = document.getElementById("img5");

if(y){

y.src = ‘file://localhost/‘ + x.value;

}else{

var img=document.createElement(‘img‘);

img.setAttribute(‘src‘,‘file://localhost/‘+x.value);

img.setAttribute(‘width‘,‘120‘);

img.setAttribute(‘height‘,‘90‘);

img.setAttribute(‘id‘,‘img5‘);

document.getElementById(‘form5‘).appendChild(img);

}

}else{

alert("您选择的似乎不是图像文件。");

}

}

6.试下效果:

这样就相对比较完美了。DOM和正则表达式一样,都是“包你不悔”的实 用技术,如果你希望更多了解、深入学习、或者顺利实践Web标准,DOM是不可或缺的。从本人最近的体会来说,Javascript+DOM+CSS蕴 藏着强大的能量,就看怎么释放它了。

7.最后帖上JQUERY的上传预览代码:

de>

$(function(){

var ei = $("#large");

ei.hide();

$("#img1").mousemove(function(e){

ei.css({top:e.pageY,left:e.pageX}).html(‘‘).show();

}).mouseout( function(){

ei.hide("slow");

})

$("#f1").change(function(){

$("#img1").attr("src","file:///"+$("#f1").val());

})

});

#large{position:absolute;display:none;z-index:999;}

de>

php 上传图片返回预览,图片上传前的预览(PHP)相关推荐

  1. JavaScript 实现图片上传前本地预览

    JavaScript 实现图片上传前本地预览 图片上传前预览,应该算是一个普遍的需求,很多时候可能选中的图片并不是想要的那张,所以需要上传前预览下. JS(浏览器中)是一门特殊的语言,它没有直接读写磁 ...

  2. iOS学习:调用相机,选择图片上传,带预览功能

    iOS学习:调用相机,选择图片上传,带预览功能 发表于2年前(2013-05-30 21:38)   阅读( 18194) | 评论( 16) 27人收藏此文章,我要收藏 赞3 8月22日珠海 OSC ...

  3. html之file标签 --- 图片上传前预览 -- FileReader

    记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...

  4. input文件框选择本地图片后页面预览图片并获取图片长宽以及大小 图片上传前预览

    前面有转过一篇通过HTML5来实现图片上传前预览 ,现在借助FileReader也实现了这个需求.并且同时还可以获得图片的长宽相素以及图片文件的大小.demo如下: <html> < ...

  5. c ajax 上传图片插件,ajax实现图片上传和预览

    图片上传功能 html结构: ![](6f4fbfb7/addimg.png) 在html中input的type=file就可以实现文件的上传功能,在其属性中也包含一个accept='':可以限制文件 ...

  6. 在BAE搭建的Django中实现图片上传并用jquery预览图片

    在BAE上搭建好了django,如何实现图片上传并预览呢? 想要实现图片上传并不难,但是想看到刚上传的图片,就得在服务器返回上传后图片的url.可是返回数据的话,网页就会重定向.因此想要在上传页面预览 ...

  7. java实现文件上传预览_jsp+springmvc实现文件上传、图片上传和及时预览图片

    1.多文件上传:http://blog.csdn.net/a1314517love/article/details/24183273 2.单文件上传的简单示例:http://blog.csdn.net ...

  8. jquery插件:图片上传按比例预览

    js部分是这样的: //**********************图片上传预览插件************************ //作者:IDDQD(2009-07-01) //Email:id ...

  9. jQuery图片上传前先在本地预览(不经过后端处理)

    前段时间遇到一个问题,前端想实现图片上传预览(不经过后端PHP或JAVA处理),用户点击file按钮上传文件,点击确定马上就能看到预览的效果,但在实现的时候无论怎样都取不到file上图片的真实路径,得 ...

  10. php用ajaxs上传图片_jquery+ajax+php 图片上传

    最近在写"网上商城"的课程设计,用到了图片上传. 我要实现的功能主要有:(1)能够上传多张图片,不过当然是有限制的,最多5张:(2)能够进行图片预览:(3)能够删除图片:(4)服务 ...

最新文章

  1. NetDevOps — ncclient
  2. 西裤哥的 Hook Api Lib 0.2 For C
  3. 今天晴朗,但是由于晚上睡眠不是很好就头昏眼花
  4. 实录分享 | 计算未来轻沙龙:“法律+AI”前沿研讨会(PPT下载)
  5. spring mvc 与 jasper Report集成
  6. 节后如何快速进入工作状态
  7. 一步步编写操作系统 76 用汇编语言编写字符打印函数
  8. ElasticSearch 动态映射与静态映射_08
  9. 让你的git bash更好看更实用
  10. Ubuntu 分卷压缩和解压
  11. IOS文件操作(NSFileManager)
  12. JDK8 官方下载地址
  13. Linux笔记本电源管理指南
  14. 操作系统 FCFS,SPF,HRRN算法的实现
  15. 柳传志:选人要看“后脑勺”
  16. moses中的数据预处理预处理操作
  17. 如何调整图片的dpi?如何修改图片分辨率?
  18. 企业邮箱邮件撤回可撤回几次?邮件误删恢复怎么用?
  19. 华硕 N53S 拆机换屏
  20. 2022.09 青少年Python等级考试(六级) 选择题部分

热门文章

  1. 在短视频源码开发中,移动端音视频加密、防盗播实现方案
  2. 【python】使用python绘制地图时手动添加比例尺
  3. Vue.js 开篇---Vue的介绍及准备工作
  4. [通讯方式] 串口通信
  5. centos 卸载apache
  6. 计算机wordif函数,wordif函数怎么用
  7. 标书的参考格式及参考内容
  8. 中间件是什么?通俗易懂的解释
  9. Wireshark分析SMTP、POP3协议
  10. Android APK反编译得到Java源代码和资源文件