欢迎您访问宜州一中 您可以登录 或注册
 
收藏本站 简繁转换
一方天地育桃李,三尺讲台竞风采             宜州区一中在宜州博物馆举行“人杰地灵读宜州”故事分享会             宜州一中举行2024届中考百日誓师大会             龙腾启新 筑梦未来 ——宜州区第一中学欢庆2024年元旦文艺晚会             走进嘉联丝厂 畅享研学之乐 ——宜州区第一中学开展研学实践活动             2023年河池市宜州区第一中学/宜州区红卫学校家庭经济困难大学新生入学资助项目发放名册(第二批)             展科技志向,圆飞行梦想 ——宜州区一中2025届举行无人机大赛             2023年河池市宜州区第一中学\红卫学校 家庭经济困难大学新生入学资助项目发放名册(第一批)             法制进校园 以法促成长 ——宜州一中举行“三姐护蕾”法治进校园活动             “英”你精彩,“语”你同行 —— 我校2025届举行英文风采大赛            

DoraCMS

您现在的位置是:首页>文档内容页

文档详情

文件上传 readFile api

doramart 2024-04-28 22:12:47 技术文档234052
readFile官方提供方法中 FileReader.readAsDataURL() 可以获取到上传路径,我本地用react做了下测试

在现代浏览器中,通过 readfile api可以很快实现upload功能:

example:

HTML:

<input type="file" onchange="previewFile()">
<img src="" height="200" alt="Image preview...">

javascript:

function previewFile() {
  var preview = document.querySelector('img');
  var file    = document.querySelector('input[type=file]').files[0];
  var reader  = new FileReader();

  reader.addEventListener("load", function () {
    preview.src = reader.result;
  }, false);

  if (file) {
    reader.readAsDataURL(file);
  }}


readFile官方提供方法中 FileReader.readAsDataURL() 可以获取到上传路径,我本地用react做了下测试:

<Input type="file" ref="faceInput" onChange={this.changeFace.bind(this)} />
<img src={this.state.faceUrl} style={{ width: 80, padding: 5 }} />

加入file变化:

changeFace() {
        const fileInputDOM = ReactDOM.findDOMNode(this.refs.faceInput);
        const reader = new FileReader();
        reader.onload = (event) => {
            let url = event.target.result; //url data
            console.log(url);
            this.setState({ faceUrl: url });
        };
        reader.readAsDataURL(fileInputDOM.files[0]);
    }

console.log可以看到获取到的url(二进制):

readfile上传图片.png

这样就可以在前端很简单的实现上传:

readfile上传头像1.png

readFile 支持的浏览器情况如下:

桌面(PC):

FeatureFirefox (Gecko)ChromeEdgeInternet ExplorerOperaSafari
Basic support3.6 (1.9.2)[1]7(Yes)10[2]12.02[3]6.0
Support in Web Workers46 (46)(Yes)(Yes)No support(Yes)No support


mobile:

FeatureFirefox Mobile (Gecko)AndroidEdgeIE MobileOpera MobileSafari Mobile
Basic support323(Yes)1011.56.1
Support in Web Workers46 (46)(Yes)(Yes)No support(Yes)No support

由此可见,一般的现代浏览器是可以支持的,特别在移动端没有问题,可以放心使用。

文章评论

取消回复
登录 参与评论

评论列表(