JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析

来源:脚本之家  责任编辑:小易  

Document 请选择图片文件:JPG/GIF $("#file0").change(function(){ var objUrl = getObjectURL(this.files[0]) ; console.log("objUrl = "+objUrl) ; if (objUrl) { $("#img0").attr("src", objUrl); $("#img0").removeClass("hide"); } }) ;

本文实例讲述了JS+HTML实现自定义上传图片按钮并显示图片功能的方法。分享给大家供大家参考,具体如下:

一、添加引用 在解决方案上单击右键,选择“Add Reference”,添加“System.Windows.Forms”,添加完后,Web.Config 中应该有类似下面的内容: 二、 设置 STA 模式 在 @ Page 指令中加上 AspCompat="true",以强制该网页在 STA(单线程单元) 模

在web开发中,上传文件功能通过type为file的input标签即可实现。但input的显示效果仅为一个按钮,且不能修改UI。如果要实现自定义上传按钮,一般需要设置input为不可见,然后将input与自定义界面放在同一个div中,并将input铺在界面上方:

复制不了,只能是下载,然后你自己选择文件夹就行了。

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>图片上传</title> </head> <body> <!-- 要将父布局的position设置为relative,父布局将无法包裹input --> <div style="position: relative;"> <!--设置input的position为absolute,使其不按文档流排版,并设置其包裹整个布局 --> <!-- 设置opactity为0,使input变透明 --> <!-- 只接受jpg,gif和png格式 --> <input id="upload-input" style="position: absolute; top: 0; bottom: 0; left: 0;right: 0; opacity: 0;" type="file" accept="image/gif, image/jpg, image/png" /> <!-- 自定义按钮效果 --> <div style="text-align: top"> <span style="font-size: 12px;">上传文件:</span> <img id="upload" src="./upload.png" style="width: 40px; height: 40px; vertical-align: middle;" /> </div> </div> </body> </html>

分别写一个onmouseover和onmouseout事件。然后在事件里面加一个function,分别写想要放大的尺寸和缩小或复原的尺寸。 具体代码实现如下: var img = document.getElementById('img'); function bigger(){ img.style.width = '400px'; img.style.

效果如下:

点击按钮将页面转为png图片,,具体效果不是很理解,可以试着点击按钮(click方法),png图片出现(show方法),覆盖整个页面即可

图片上传

哈哈哈,中国新四大发明。这题特么也能审过我也服了题主?你确定你不是来做广告吗?我想起一个老外朋友看待中国卡拉OK的行为。十年前,老外看到中国人唱卡拉OK的时候他们是惊讶的,因为在他们看来,家里看电视全都是需要买盘的。而电视只是做为一个载体,而现在,他们更惊讶的是,我们的电视不仅可以做为卡拉OK用,还可以看各种免费的内容,付费的内容,直播剧场的内容,在他们看来,这是不可能实现的,因为版权的原因。而现在我们有了更多让他们惊讶的举动,比如,移动支付,高铁,外卖。当然也包括互联网电视。我心想。这可能是他们眼中的四大发明吧。一、移动互联网改变了人们的支付方式二、高铁改变了出行方式三、外卖改变了人们的生活

这样,自定义按钮效果就完成了。但是,这样还不能把图片显示出来。要实现显示上传图片功能,可以通过以下方法实现:

    FileReader将文件转Base64显示。FileReader能够异步读取文件,并将文件转化为可读取的编码。我们可以通过input获取上传图片的file实例。我们可以通过FileReader将file实例转化为Base64,然后通过img标签加载图片的Base64编码。

诺基亚手机正式回归后,先后推出了Nokia3、Nokia5、Nokia6以及Nokia3310等多款产品。虽然这些手机属于中低端以及入门级产品,但在设计等方面还是挺有特色的,硬朗的线条辨识度很高没有盲目随大流模仿iPhone。当然,这些都是开胃菜,继Nokia8被曝光后,Nokia9也逐渐浮出水面。近期,有外媒根据目前的消息绘制出了一组Nokia9的真机渲染图。据悉该机会使用屏占比达到90%以上的5.7英寸2K分辨率屏幕,屏幕上方搭载了3D感测镜头支持人脸识别以及虹膜识别。机身方面该机也会延续Nokia6上的硬朗风,除了会做薄机身外还会加入IP68级别的防尘防水,此外会保留3.5mm耳机接口。

<script type="text/javascript"> function showImg(input) { var file = input.files[0]; var reader = new FileReader() // 图片读取成功回调函数 reader.onload = function(e) { document.getElementById('upload').src=e.target.result } reader.readAsDataURL(file) } </script>

    通过window.URL.createObjectURL创建url。通过该方法可以为file实例创建一个临时的url,img可以通过该url将图片加载出来。由于是临时的url,因此同一个file实例,每次创建的url都会不一样:

上面提到的有认识的,也有不认识的。我就挑我知道的几个人来说说吧。小时候大约在上小学的时候,被同学带进游戏厅,从此接触到了拳皇,虽然至今仍然是个拳皇菜鸟但是对于拳皇高手一直处于45°仰望的感觉。前几年一次偶然的机会知道了小孩,当时的他已经是格斗界的一哥了。横扫世界各大格斗比赛的冠军。不论是拳皇还是街霸都非常厉害。在此之前其实一直感觉拳皇这样的游戏在中国并没有什么热度,和一些网游比起来差远了。但是知道小孩的存在之后,感觉中国竟然还有这样一批热爱并坚持格斗游戏的玩家,感到了深深的敬佩。说实话,在中国格斗游戏并不像MOBA游戏和FPS游戏那样有着强大的用户基础和关注度,也没有什么正规的职业比赛。而相比

function showImg(input) { var file = input.files[0]; var url = window.URL.createObjectURL(file) document.getElemtById('upload').src=url }

有钱人,我看到题目的瞬间就想到了题主是个有钱人,不为生计而苦恼。一天至少两片面膜,半年就是一百八十天,那么坚持半年的话就是要360片面膜以上,好一点的面膜至少要7,、8块大洋一张,那么半年就要2500到3000左右,这只是面膜的消耗,还没包括其他化妆品。哇喔,这种任性的做法,我真的羡慕嫉妒恨啊!坚持半年,如果你能负担得起这笔费用,那么你有可能变成一个水灵灵的大美女(可能哈)坚持半年,如果你是一个刚出来社会打拼的小青鸟或者学生党,那么你可能一个月有一半在吃土啊!!!!

使用上述方法中的其中一种,并将showImg方法挂在input的onchange属性上,就能够显示图片了:

<input id="upload-input" style="position: absolute; top: 0; bottom: 0; left: 0;right: 0; opacity: 0;" type="file" accept="image/gif, image/jpg, image/png" onchange="showImg(this)"/>

显示效果如下:

显示上传的图片

上述代码中,点击input标签时,一次性只能选择一张图片,如果要选择多张图片,则要给input添加multiple属性:

<input id="upload-input" style="position: absolute; top: 0; bottom: 0; left: 0;right: 0; opacity: 0;" type="file" accept="image/gif, image/jpg, image/png" multiple onchange="showImg(this)"/>

然后通过多个img显示files里面的图片即可,代码如下:

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>图片上传</title> </head> <body> <!-- 要将父布局的position设置为relative,父布局将无法包裹input --> <div style="position: relative;"> <!--设置input的position为absolute,使其不按文档流排版,并设置其包裹整个布局 --> <!-- 设置opactity为0,使input变透明 --> <!-- 只接受jpg,gif和png格式 --> <input id="upload-input" style="position: absolute; top: 0; bottom: 0; left: 0;right: 0; opacity: 0;" type="file" accept="image/gif, image/jpg, image/png" onchange="showImg(this)" multiple /> <!-- 自定义按钮效果 --> <div style="text-align: top"> <span style="font-size: 12px;">上传文件:</span> <img id="upload" src="./upload.png" style="width: 40px; height: 40px; vertical-align: middle;" /> </div> </div> <div id="imgContainer" style="margin-top: 10px;"></div> </body> <script type="text/javascript"> function showImg(obj) { var files = obj.files // document.getElementById("imgContainer").innerHTML = getImgsByUrl(files) getImgsByFileReader(document.getElementById("imgContainer"), files) } // 使用window.URL.createObjectURL(file)读取file实例并显示图片 function getImgsByUrl(files) { var elements = '' for (var i = 0; i < files.length; i++) { var url = window.URL.createObjectURL(files[i]) elements += "<img src='"+ url + "' style='width: 40px; height: 40px; vertical-align: middle; margin-right: 5px;' />" } return elements } // 使用FileReader读取file实例并显示图片 function getImgsByFileReader(el, files) { for (var i = 0; i < files.length; i++) { let img = document.createElement('img') img.setAttribute('style', 'width: 40px; height: 40px; vertical-align: middle; margin-right: 5px;') el.appendChild(img) var reader = new FileReader() reader.onload = function(e) { img.src = e.target.result } reader.readAsDataURL(files[i]) } } </script> </html>

最终显示效果如图:

多图上传

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript图片操作技巧大全》、《JavaScript切换特效与技巧总结》、《JavaScript运动效果与技巧汇总》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

html和js如何实现鼠标移到图片上出现按钮

主要在标签中加入onmouseover,onmonseout事件,附件中是sina微博中实现的主要代码与样式。

在html里面怎么为一个按钮添加图片?

方法1:

给图片加一个onclick事件,用js事件来提交就可以实现。

例:<input type="image" src="图片地址" />

方法2:

有CSS把图片设为按钮背景就可以了

例: <input name="" type="button"  style=" width:10px; height:10px;  border:0; background:url(图片路径) no-repeat left top" />

在html里面怎么为一个按钮添加图片

需要准备的材料分别有:电脑、浏览器、html编辑器。

1、首先,打开html编辑器,新建html文件,例如:index.html,编写问题基础代码。

2、在index.html中的<button>标签中,加入样式代码:style="background: url(small2.png);width:150px;height:60px"。

3、浏览器运行index.html页面,此时按钮被成功添加了图片。

html点击button弹出选择文件,上传,这个怎么实现?

这个样式挺漂亮的,你可以试下:

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>定义input type="file" 的样式</title>

<style type="text/css">

body{ font-size:14px;}

input{ vertical-align:middle; margin:0; padding:0}

.file-box{ position:relative;width:340px}

.txt{ height:22px; border:1px solid #cdcdcd; width:180px;}

.btn{ background-color:#FFF; border:1px solid #CDCDCD;height:24px; width:70px;}

.file{ position:absolute; top:0; right:80px; height:24px; filter:alpha(opacity:0);opacity: 0;width:260px }

</style>

</head>

<body>

<div class="file-box">

<form action="" method="post" enctype="multipart/form-data">

<input type='text' name='textfield' id='textfield' class='txt' />

<input type='button' class='btn' value='浏览...' />

<input type="file" name="fileField" class="file" id="fileField" size="28" onchange="document.getElementById('textfield').value=this.value" />

<input type="submit" name="submit" class="btn" value="上传" />

</form>

</div>

</body>

</html>

用html5或js功能或css实现特定方框内图像保存为图片功能。

无法实现。

window.location.href = "image/octet-stream"仅仅是用来将获取的图片数据在新窗口打开,浏览器就会自动提示下载。

可问题是image的数据从哪儿来?HTML5里面的Canvas支持象素级操作,可以获取图像数据,但一个网页不是一张图片,它是有许多的DOM和样式渲染而成,在JS中是无法将其转换成一张图片的,除非浏览器提供相关API,但目前并没有浏览器提供了类似的API,因此暂时无法实现。

你看现在所有的截图,要么是浏览器自带的,要么就要安装插件。更多追问追答追问那么你的意思就是说无法实现保存图片的功能。那么(假设)如果我是用html5。css。js等做一个软件,那么我能不能实现我说的这个功能呢?还有,那些用html5做的画图网站又是怎么实现图像保存的呢。请教。。。感谢追答1. 你用HTML5、CSS和JS做什么软件,都不能实现这个效果,除非浏览器给你提供API。

2. 那些用HTML5做的画画软件,实际上就是在一个画布(Canvas)上进行绘画的,Canvas中的图像数据时可以获取的,上面已经提到了,因此可以保存为图片。而网页不一样,Canvas只是HTML中的一个标签,而一个网页包含了许多许多标签,除了Canvas,它们都无法将内容存为图片。

当然,如果你真要做成这样,你可以把整个网站都用Canvas来绘制,不过这样很复杂,特别是有一些效果和用户交互的话,且只支持HTML5的浏览器。追问不好意思。麻烦您了。再问一个问题。我会追加分数的。

你说canvas可以获取图像数据,其实我就只需要保存那个画布里的图像。那么我能不能把Canvas就设置一个特定的大小(譬如半个屏幕大小),接着用几张图片覆盖在画布上面,那么我就直接保存那个画布方框里的图像。这个可以吗?

你说必须得api,那么请问如果用phonegap或者什么html5手机开发软件里,有这些保存图像的sdk吗???再次感谢。追答canvas是可以设置大小的,你可以想象其实canvas就像是windows里面的画图工具,你可以在里面画任何的图片、文字,并进行象素级操作。就像上面说的,你可以整个页面就用一个canvas,所有东西放到里面,想怎么截图就可以怎么截图,想要什么效果都可以实现,不过这样开发起来会比较困难,且仅支持HTML5的浏览器可以运行。

Phonegap里面是没有提供保存为图像的API的,不过如果你是在终端上面使用,那就好说了,因为你可以修改Phonegap的源码,或者自己开发一个WebView,提供一些保存为图片的API。

  • 本文相关:
  • js实现上传图片并显示图片名称
  • 上传图片时js自动显示图片
  • js兼容火狐显示上传图片预览效果的方法
  • js+html5实现异步上传图片显示上传文件进度条功能示例
  • 基于javascript filereader上传图片显示本地链接
  • js实现上传图片的三种方法并实现预览图片功能
  • js实现上传图片预览的方法
  • js实现上传图片之上传前预览图片
  • javascript 验证上传图片大小[客户端]
  • js 上传图片预览问题
  • javascript实现上传图片并预览的效果实现代码
  • wx-charts 微信小程序图表插件的具体使用
  • javascript中dom复选框选择用法实例
  • 原生js实现移动端瀑布流式代码示例
  • js实现获取数组中最大值或最小值功能示例
  • javascript高级程序设计 阅读笔记(十四) js继承机制的实现
  • 微信小程序用户位置权限的获取方法(拒绝后提醒)
  • javascript中的this引用(推荐)
  • 微信小程序授权登陆及每次检查是否授权实例代码
  • 在javascript中通过url传递汉字的方法
  • js+css实现上下翻页相册代码分享
  • html和js如何实现鼠标移到图片上出现按钮
  • 在html里面怎么为一个按钮添加图片?
  • 在html里面怎么为一个按钮添加图片
  • html点击button弹出选择文件,上传,这个怎么实现?
  • 用html5或js功能或css实现特定方框内图像保存为图...
  • 怎样用js或者jq实现点击这个图片就可以选择上传还...
  • js中点击按钮将html页面导出成图片
  • 现在想通过html和js实现一个功能,通过弹出文件选...
  • 在html中怎么用js实现鼠标指向图片时图片放大的效...
  • 用html5写的页面,新增功能点击按钮将页面转为png图...
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved