手机版

JavaScript实现图片本地预览功能【不用上传至服务器】

时间:2021-09-03 来源:互联网 编辑:宝哥软件园 浏览:

本文实例讲述了Java脚本语言实现图片本地预览功能。分享给大家供大家参考,具体如下:

实现一个在文件文件域中选定图片文件之后,马上进行预览。不用预上传到服务器,整缩略图再打回前端用埃阿斯去预览的。直接利用Java脚本语言即可以完成,而且还可以兼容IE6。具体效果,如下图所示:

具体实现是在非工业管理学(工业工程)浏览器利用HTML5去显示,在工业管理学(工业工程)浏览器则直接调用工业管理学(工业工程)的滤镜功能去实现。具体代码如下:

!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN ' ' http://www .w3。org/TR/XHTML 1/DTD/XHTML 1-Transitional。DTD ' html xmlns=' http://www .w3。org/1999/XHTML ' head meta http-equiv=' Content-Type ' Content=' text/html;charset=utf-8'/title图片上传本地预览/title style type='text/css' /*设置工业管理学(工业工程)滤镜,这里的id=imghead要与下方利用爪哇岛描述语言生成差异的编号相呼应*/# imghead { filter : progid : maximagettransform .微软。alpha imageloader(大小调整方法=image);}/样式脚本类型='text/javascript' //图片上传预览,非工业管理学(工业工程)则用了HTML5的代码,IE是用了滤镜函数预览图像(文件,最大宽度,最大高度){//最大宽度,最大高度与放预览图片的——分区审核的大小相呼应var div=文档。getelementbyid('预览');if(文件。文件文件。文件[0]){//html 5部分div。innerhtml=' img id=' imghead '/img ';var img=文档。getelementbyid(' imghead ');img。onload=function(){ var rect=clacImgZoomParam(MAXWIDTH,MAXHEIGHT,img.offsetWidth,img。右偏);img。宽度=矩形。宽度;img。高度=矩形。身高;img。风格。margintop=rect。顶部“px”;} var reader=new FileReader();读者。onload=function(evt){ img。src=evt。目标。结果;}读者。readasdataurl(文件。文件[0]);} else //兼容IE { var s filter=' filter : progid : maximagettransform .微软。AlphaimageLoader(sizing method=scale,src=' http:file。select();var src=文档。选择。创建范围().文本;div。innerhtml=' img id=' imghead '/img ';var img=文档。getelementbyid(' imghead ');img。过滤器。项目(' dximagettransform .微软。alpha imageloader’).src=src var rect=ClacimgZoomparam(MAXWEIGHT,MAXHEIGHT,img.offsetWidth,img。右偏);div。inner html=' div style=' width : ' rect。宽度' px;高度: '直角.高度' pxmargin-顶部: '直角。top ' pxs筛选器src ' \ ' '/div ';} } //用于计算预览图片的大小函数clacImgZoomParam(maxWidth,maxHeight,Width,height){ var param={ top: 0,left: 0,width: width,height : height };if(width maxWidth | | height maxHeight){ rate width=width/maxWidth;rateHeight=高度/最大高度;if(速率宽度速率高度){ param。width=maxWidthparam.height=Math.round(高度/比率宽度);} else { param。宽度=数学。圆形(宽度/比率高度);param.height=maxHeight} } param。左=数学。round((MaxWidth-param。宽度)/2);帕拉姆。top=数学。round((maxHeight-param。高度)/2);返回参数;}/script/head body div id=' preview ' style=' width :320 px;高度:240 px/div!-用来放预览图片的DIV -输入类型=' file ' on change=' preview image(this,320,240)' accept=' image/*/!-一旦用户选择了图片文件,则触发上方的预览图像函数- /body/html首先在试映这个放图片预览的差异中生成一个id=imghead的div。

在非IE部分,可以用HTML5直接读取用户选择的文件,通过函数clacimgzoomparam (maxwidth,maxheight,width,height)计算预览图片的大小,然后直接将图片放入id=imghead div。如果是IE,生成的id=imghead的div会被赋予样式标签上设置的滤镜,通过滤镜加载用户选择的图像文件,然后通过clacImgZoomParam函数计算大小。获得尺寸后,预览中的所有内容将被清除,并正式生成确定尺寸的div。

在输入类型='file '文件字段中,accept='image/* '的HTML5函数也用于限制用户只能选择图像文件。但是提交表单的时候,要通过onSubmit进行判断,同时要在服务器后台进行判断,防止用户向服务器发送奇怪的东西。

更多对JavaScript相关内容感兴趣的读者可以查看本网站专题:《JavaScript图片操作技巧大全》、《JavaScript图形绘制技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数学运算用法总结》、0103010

希望本文对JavaScript编程有所帮助。

版权声明:JavaScript实现图片本地预览功能【不用上传至服务器】是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。