'<input type="file" accept="image/*"/>'使用这个之后,怎么把选择的图片放到网页上?

'<input type="file" accept="image/*" value="请选择图片"/>'使用这个之后,怎么把选择的图片放到网页上?
在浏览器上面能显示刚刚上传的图片

阅读 10.4k
6 个回答

可以使用html5的fileReader 接口,大致代码如下:

function read(){
    var fs=document.getElementById('file').files[0];
    if(fs){
        var reader=new new FileReader();
        reader.readAsDataURL(fs);
        function li(str){
            var obj=document.createElement('li');
            obj.innerHTML=str;
            document.body.appendChild(obj);
        }
        reader.onloadstart=function(){
            li('开始读取')
        }
        reader.onprogress=function(){
            li('正在读取.....')
        }
        reader.onload=function(e){
            var img=document.createElement('img');
            img.src=this.result;
            document.body.appendChild(img);
        }
        reader.onabort=function(){
            li('读取中断!!')     
        }
        reader.onerror=function(){
            li('读取出现错误!!')
        }
        reader.onloadend=function(){
            li('FileReader读取步骤执行完毕')
        }
    }
}

选择图片之后异步传给服务器的某个临时目录,返回路径。然后就可以显示了。

  1. 传送到服务端,返回 URL,然后展示。

  2. 用 FileReader 接口,不经过服务端,直接读取展示。

你这个需求是上传图片预览:
古老的方法:先传到服务器生成一个临时url,然后返回给页面。现在一般用FileReader,直接本地预览。不需要上传服务器。

js获取图片等base64

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题