美文网首页
input上传图片后预览图片的功能实现

input上传图片后预览图片的功能实现

作者: 英俊又可爱XD | 来源:发表于2018-01-11 23:10 被阅读0次

    一共有本地读取或服务器读取两个套路,分以下三种方法。

    方法1:使用URL.createObjectURL()创建blob链接

    核心方法:objectURL = URL.createObjectURL(blob);

    注意:
    此方法尚在beta版本中,浏览器支持较差。
    详细步骤见:用户上传图片时在网页上实时预览本地图

    方法2:H5方法-使用FileReader文件读取器创建文件DataURL

    核心方法:fileReader.readAsDataURL(file);

    FileReader - MDN文档

    步骤:
    1. 用构造函数实体化new一个文件读取器FileReader
    2. 用实体化出来的文件读取器调用readAsDataURL方法,将文件对象作为参数传进去,读取文件为dataURL(要先调用一下这个函数才能在下一步使用result)
      3.读取器的result属性就是我们需要用到的dataURL
    3. 文件读取器的onload回调函数:将这个result作为链接写入img的src
        //var到input
        var input = document.getElementById("input");
        //监听input,数值变化onchange即用户上传了文件
        input.onchange = function(){
            //获取用户上传的文件对象
            var theFile = input.files[0];
            //实例化一个文件读取器
            var fileReader = new FileReader();
            //将用户上传的文件对象作为参数,传入文件读取器的方法readAsDataURL
            fileReader.readAsDataURL(theFile);
            //文件读取器方法执行完毕后调用函数
            fileReader.onload = function (){
                //文件读取器的result属性即fileReader.result,就是上传文件的dataURL
            document.getElementsByTagName("img")[0].src = fileReader.result;
            }
        }
    

    方法3:Ajax文件上传获取服务器链接

    核心方法:
    1. 用ajax上传文件后,获取服务器中的图片链接
    2. 服务器中的图片链接赋值给页面中的img
      其中,ajax2.0上传文件的方法详见:用AJAX2.0上传富文本编辑器内容、字符串、文件等

    2018.1.11

    相关文章

      网友评论

          本文标题:input上传图片后预览图片的功能实现

          本文链接:https://www.haomeiwen.com/subject/tjhxoxtx.html