图片上传带预览

分享做图片上传的时候,页面不提交就预览图片的两种方法:

亲测有效:可直接粘贴使用

方法一:

方法一实现代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>  
<html>  
<head>  
<title>HTML5上传图片预览</title>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>  
</head>  
<body>  
<div>
<input type="file" name="file0" id="file0" multiple="multiple" style="width: 100px;height: 100px;border: 0;position: absolute;left: 0;top: 0;z-index: 1;padding: 0;opacity: 0;"/><br>  
		<img src="images/yulan.jpg" id="img0" style="width: 100px;height: 100px;">
		<span style="margin-top:1000px;">请选择图片文件:JPG/GIF</span>
 </div> 
<script>   
$("#file0").change(function(){  
		 var objUrl = getObjectURL(this.files[0]) ;//获取文件信息  
		 console.log("objUrl = "+objUrl);  
		  if (objUrl) {  
		  $("#img0").attr("src", objUrl);  
		 }   
}) ;  
function getObjectURL(file) {  
		 var url = null;   
		 if (window.createObjectURL!=undefined) {  
		  url = window.createObjectURL(file) ;  
		 } else if (window.URL!=undefined) { // mozilla(firefox)  
		  url = window.URL.createObjectURL(file) ;  
		 } else if (window.webkitURL!=undefined) { // webkit or chrome  
		  url = window.webkitURL.createObjectURL(file) ;  
		 }  
		 return url ;  
		}  
		</script>  
</body>  
</html>  

方法二:

本文为大家分享了js实现图片上传并预览的具体代码,供大家参考,具体内容如下

思路:完成这个功能,首先需要美化上传图片的按钮,然后添加一个<img/>标签,在图片上传之后,用新图片的src替换原来<img/>标签中的src。

如下图所示,是原始的按钮样式:

美化步骤:

(1)将上传图片标签采用绝对定位,使之位于一个图片,按钮,div等标签上。或者给图片,按钮或div设置绝对定位,总之,是要让上传文件按钮和用户指定的按钮重合。

(2)给上传图片标签设置大大小,使之和与它重叠的图片,按钮,div等标签大小一致。

(3)我将此标签设置为透明:opacity:0;

如下图所示,是两种美化后的上传图片按钮:

接下来是完成图片预览的功能,步骤:

(1)首先需要定义好一个<img>,src为空或者是默认图片,

(2)如果src为空,就给定义好的img设置为透明:opacity:0;如果不是透明的话,会显示一个图片的标志,不美观。

(3)点击上传图片后,获取上传的图片的src,将它赋值给事先定义好的<img>,再给<img>设置opacity:1;

接下来为具体的代码示例。

 示例一:将图片上传到点击的位置。(此示例中使用了AUI框架,但不影响此功能。)

HTML代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

<div id="imgPreview">

 <div id="prompt3">

 <span id="imgSpan">

 点击上传

   <br />

 <i class="aui-iconfont aui-icon-plus"></i>

   <!--AUI框架中的图标-->

 </span>

 <input type="file" id="file" class="filepath" onchange="changepic(this)" accept="image/jpg,image/jpeg,image/png,image/PNG">

  <!--当vaule值改变时执行changepic函数,规定上传的文件只能是图片-->

 </div>

 <img src="#" id="img3" />

</div>

 CSS代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

#imgPreview {

 width: 40%;

 height: 180px;

 margin: 10px auto 0px auto;

 border: 1px solid black;

 text-align: center;

}

#prompt3 {

 width: 100%;

 height: 180px;

 text-align: center;

 position: relative;

}

#imgSpan {

 position: absolute;

 top: 60px;

 left: 40px;

}

.filepath {

 width: 100%;

 height: 100%;

 opacity: 0;

}

#img3 {

 height: 100%;

 width: 100%;

 display: none;

}

JS代码:

?

1

2

3

4

5

6

7

8

9

10

function changepic() {

 $("#prompt3").css("display", "none");

 var reads = new FileReader();

 f = document.getElementById('file').files[0];

 reads.readAsDataURL(f);

 reads.onload = function(e) {

 document.getElementById('img3').src = this.result;

 $("#img3").css("display", "block");

 };

}

效果如下图所示:

示例二:将图片上传到点击按钮旁边的位置。(此示例中使用了阿里巴巴矢量图标库,但不影响此功能。)

HTML代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

<div class="aui-col-xs-3" id="img">

 <svg class="icon bigIcon" aria-hidden="true">

 <use xlink:href="#icon-msnui-add"></use>

 </svg>

 <!--阿里巴巴矢量图标,就是最后效果图中的“+”图标-->

 <div class="aui-grid-label">添加图片</div>

 <div id="upImg">

  <input type="file" name="file" id="chooseImage" />

 </div>

 <div id="imgPreview">

  <img src="#" id="cropedBigImg" />

 </div>

</div>

 CSS代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

#img {

 float: left;

 margin-left: 20px;

 width: 150px;

 height: 60px;

 }

#upImg {

 position: absolute;

 top: 0px;

 left: 0px;

}

#upImg input {

 width: 70px;

 height: 60px;

 opacity: 0;

}

#imgPreview {

 width: 80px;

 height: 60px;

 position: absolute;

 left: 70px;

 top: 0px;

}

#cropedBigImg{

 width: 100%;

 height: 100%;

 display: none;

}

JS代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

$('#chooseImage').on('change', function() {//当chooseImage的值改变时,执行此函数

 var filePath = $(this).val(), //获取到input的value,里面是文件的路径

 fileFormat = filePath.substring(filePath.lastIndexOf(".")).toLowerCase(),

 src = window.URL.createObjectURL(this.files[0]); //转成可以在本地预览的格式

  

 // 检查是否是图片

 if(!fileFormat.match(/.png|.jpg|.jpeg/)) {

   error_prompt_alert('上传错误,文件格式必须为:png/jpg/jpeg');

 return;

 }else{

 $('#cropedBigImg').css('display','block');

 $('#cropedBigImg').attr('src', src);

 }

});

效果如下图所示:

方法三:

使用插件:http://www.17sucai.com/pins/demo-show?id=19648

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue中实现图片的过程如下: 首先,要在Vue项目中使用图片功能,需要在组件中添加一个文件上input元素,并设置其类型为"file",同时在data中定义一个变量来保存上的文件对象和图片URL。例如: ``` <input type="file" @change="handleImageUpload"> <img :src="previewImage" v-if="previewImage"> ``` 其次,在methods中,需要定义一个处理图片的函数。在函数中,首先获取用户选择的文件,并将其赋值给data中的变量。然后利用FileReader将文件转换成Data URL的形式,以便在浏器端。最后,将转换后的URL保存在data中的变量中,以便在页面上进行。例如: ``` handleImageUpload(event) { const file = event.target.files[0]; this.image = file; const reader = new FileReader(); reader.onload = () => { this.previewImage = reader.result; } reader.readAsDataURL(file); } ``` 接下来,在data中定义一个用于保存图片的变量previewImage,并将其初值设置为null。这个变量会在上文件并时使用。例如: ``` data() { return { image: null, previewImage: null } } ``` 最后,将上的文件和图片URL绑定到页面上,以实现图片的功能。例如,在input元素中使用@change监听文件选择事件,然后调用handleImageUpload方法进行文件上。在img元素中使用v-if指令判断图片的URL是否存在,如果存在,则显示图片。例如: ``` <input type="file" @change="handleImageUpload"> <img :src="previewImage" v-if="previewImage"> ``` 以上就是使用Vue实现图片的简单过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值