三种预览图片的方法

三种方式,前面两种直接在本地预览图片,第三种方式需要通过服务器来获取图片

但存在兼容性问题,不兼容ie8

下面分别是html,js和php的内容


<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form> <input type="file" name="icon"> <img src="" alt=""> </form> </body> </html>

 js部分

  // 预览图片的三种方法

  // 方法一:创建url连接
  // input标签改变时触发事件,querySelector是h5c3出的属性选择器
  document.querySelector("input[type=file]").onchange = function(){
    // 获取文件对象
    var file =this.files[0];

    // 创建文件链接
    var url = URL.createObjectURL(file);

    // 将路径赋值给img标签
    document.querySelector("img").src=url;
    
  }

  // 方法二:解析文件转码为base64
  // input标签改变时触发事件
  document.querySelector("input[type=file]").onchange = function(){
    // 获取文件对象
    var file =this.files[0];

    // 创建读取对象
    var reader = new FileReader();

    // 解析文件对象
    reader.readAsDataURL(file);

    // 解析完成,回调函数
    reader.onload = function (){
      // 将文件对象解析成base64编码
      var url = reader.result;
           
      // 将解析的数据结果赋值给img标签
      document.querySelector("img").src=url;
    }
    
  }

    // 方法三:通过ajax将文件上传给后台php,后台保存文件,并生成路径,在回调函数中获取路径
     document.querySelector("input[type=file]").onchange = function () {
      // xhr 2.0 配合form,发送图片文件
      var sendDate = new FormData(document.querySelector("form"));
       
      // ajax发送文件
      // 创建请求对象
      var xhr = new XMLHttpRequest();

      // 请求行
      xhr.open("post","xxx.php");

      // 回调函数
      xhr.onload = function() {
        // json格式转成普通格式
        var backData = JSON.parse(xhr.responseText);
        
        //  将解析的数据结果赋值给img标签
         document.querySelector("img").src="./img/"+backData.name;
      }

      // 发送请求主体
      xhr.send(sendDate);

     }

 

 php内容

<?php
header("Access-Control-Allow-Origin:*");

  // icon是input标签的name,将文件保存根目录
  //由于window的字符集编码默认是gbk,而html和php的字符集编码默认是utf-8,因此存文件需要转码 
  $name = $_FILES["icon"]["name"];
  $name = iconv("utf-8","gbk",$name);
  move_uploaded_file($_FILES["icon"]["tmp_name"],"./img/".$name);

  // 这个name是utf-8编码的
  $name = $_FILES["icon"]["name"]; echo json_encode(array( "name" => $name )) ?>

 

转载于:https://www.cnblogs.com/htmlli/p/8023012.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HTML5提供了多种实现图片和视频的方式。 图片可以使用HTML5的`<img>`标签,通过设置`src`属性指定图片的路径来展示图片。可以通过添加`width`和`height`属性来控制图片的显示大小。另外,可以使用CSS属性来设置图片的样式,比如调整边框、圆角等。如果需要多张图片,可以使用JavaScript来动态地修改`src`属性。 视频可以使用HTML5的`<video>`标签,通过设置`src`属性指定视频文件的路径来播放视频。可以使用`controls`属性来显示视频的播放控制栏,包括播放/暂停、音量和进度条等。同时,可以设置`width`和`height`属性来控制视频的显示大小。另外,还可以使用JavaScript来控制视频的播放、暂停、音量、全屏等功能,通过对`<video>`标签的属性和方法进行操作。 为了兼容不同浏器和不同文件格式,可以在`<video>`标签内添加多个`<source>`标签,每个`<source>`标签指定一个不同格式的视频文件。浏器会选择支持的第一个视频格式进行播放。此外,可以使用`poster`属性设置视频封面,在视频加载前显示一张图片。 总结起来,HTML5可以通过`<img>`标签和`<video>`标签来实现图片和视频的功能,通过设置相关属性和样式,以及使用JavaScript来控制播放和操作。这些功能的实现可以根据需求来灵活选择,并且需要考虑浏器的兼容性和文件格式的支持。 ### 回答2: 在HTML5中,我们可以使用HTML标签和JavaScript来实现图片和视频的功能。 对于图片,可以使用HTML的<input type="file">标签来创建一个文件上传表单,用户可以选择本地的图片文件进行上传。然后,借助JavaScript的FileReader对象,可以读取这个文件,并以DataURL的形式将其显示在页面中。通过设置<img>标签的src属性为DataURL,可实现图片的效果。 对于视频,HTML5提供了<video>标签。通过设置<video>标签的src属性为视频文件的URL,即可将视频加载到页面中进行。此外,<video>标签还提供了一些属性和方法用于控制视频的播放、暂停和调整播放进度等功能,可以根据需求进行配置。 在实际使用中,可以使用JavaScript添加事件监听器,以便根据用户的操作来控制图片和视频的效果,比如播放、暂停、拖动进度条等。另外,可以根据需要设置一些样式或使用其他的第三方库来美化效果,增强用户体验。 总而言之,通过使用HTML5中提供的相关标签和JavaScript的操作,我们可以方便地实现图片和视频的功能,为用户提供更好的浏体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值