美文网首页
图片上传和预览

图片上传和预览

作者: 老虎爱吃母鸡 | 来源:发表于2017-03-07 12:30 被阅读0次

通过input:file来实现图片预览和上传的功能

input:file

  1. accept属性,表示接受的文件类型,默认所有文件类型


    Paste_Image.png
  2. mutiple,表示接受同时上传多个文件
  3. 上传的文件会在input的files对象中拿到,files对象是一个fileList对象


    Paste_Image.png
  4. 原生的样式如何修改


    Paste_Image.png

    原生的比较简单,不符合UI的需求,基本思路是把input透明,使用label可以实现自定义上传按钮

<label class="ui_button ui_button_primary" for="xFile">上传文件</label>
<form><input type="file" id="xFile" style="position:absolute;clip:rect(0 0 0 0);"></form>
Paste_Image.png

预览功能的实现

  1. 使用FileReader
    图片会以base64转换成字符串,只适用于比较小的图片,优点是可以伴随html一起下载,不需要额外的请求


    Paste_Image.png
    Paste_Image.png
  2. createObjectURL
    createObjectURL是window.URL对象上的方法,与FileReader相比效率更高


    Paste_Image.png

    使用方法:


    Paste_Image.png
    返回的是Blob对象创建的URL字符串,无论是Blob对象创建的URL字符串,还是base64编码的字符串,都可以像普通的url一样使用,可以直接放在img标签的src中或者background的url()中
    Paste_Image.png

上传功能的实现

上传利用的是XMLHttpRequest Level 2提供的接口 FormData,这个接口能实现二进制文件的上传,简单来说就是一个ajax请求,内容是FormData


Paste_Image.png

参考

HTML5实现图片预览
玩转图片base64编码
HTML input type=file文件选择表单元素二三事

相关文章

网友评论

      本文标题:图片上传和预览

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