本文实例为大家分享了JS使用base64格式上传文件的具体代码,供大家参考,具体内容如下

html页面

<input type="file" id="fielinput" />
<img id="txshow" style="width:100px;height:100px;"/>
<br/>解析之后的base64数据:<br/>
<p id="data"></p>

js部分

/***
 * 
 * FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,
 * 使用 File 或 Blob 对象指定要读取的文件或数据。

   其中File对象可以是来自用户在一个<input>元素上选择文件后返回的FileList对象,
   也可以来自拖放操作生成的 DataTransfer对象,还可以是来自在一个HTMLCanvasElement上执行mozGetAsFile()方法后返回结果

*/

/**
 * FileReader() 构造函数
 * 
 * 属性
 *      FeileReader.error只读,表示读取文件失败时发生的错误
 *      FeileReader.readyState只读,readyState代表数字,状态
 *         EMPTY => 0 => 还未加载任何数据  
 *         LOADINF => 1 => 正在加载
 *         DONE => 2 => 已经全部读取完成
 *      FeileReader.result只读,
 *          文件的内容,这个属性要在读取完成(也就是readyState变为2时)后才有效。
 * 
 * 事件处理事件
 *      FeileReader.onabort 
 *          处理abort事件,在读取操作中如果要中断(终止)执行的事件
 *      FeileReader.error
 *          在读取时如果发生错误时会触发
 *      FeileReader.onload
 *          处理load事件,在读取操作完成时触发的(成功时若有提示框弹出成功等字样,写在这里)
 *          FeileReader.onload = function(){}
 *      FeileReader.onloadStart 
 *          在开始读取的时候触发
 *      FeileReader.onloadEnd
 *          在读取操作结束的时候触发
 *      FeileReader.onProgess
 *          该事件在读取blob时触发
 * 
 * 方法
 *      FeileReader.abort()
 *          中止读取操作。在返回时,readyState属性为DONE。
 *      FeileReader.readAsArrayBuffer()
 *          开始读取指定的Blob中的内容,一旦完成,result属性中保存的将是被读取文件的ArrayBuffer数据对象
 *      FileReader.readAsBinaryString()
 *          开始读取指定的Blob中的内容,一旦完成,result属性中将包含所读取文件的原始二进制数据
 *      FileReader.readAsDataURL()
 *          开始读取指定的Blob中的内容,一旦完成,result属性中将包含一个data: URL格式的Base64字符串表示所读取文件的内容
 *          1. readAsDataURL 
 *          方法会读取指定的 Blob 或 File 对象。读取操作完成的时候,readyState 会变成已完成DONE,并触发 loadend 事件,
 *          同时 result 属性将包含一个data:URL格式的字符串(base64编码)以表示所读取文件的内容。
 *          参数: 即将被读取的 Blob 或 File 对象。
 *      FileReader.readAsText() 
 *          开始读取指定的Blob中的内容,一旦完成,result属性中将包含一个字符串来表示读取的文件内容
 *  
 * 
 * 
 * **/
var input = document.getElementById("fielinput");
input.addEventListener('change', readFile, false);
function readFile() {
   var file = this.files[0];
    //判断是否是图片类型
    /*if (!/image\/\w /.test(file.type)) {
     alert("只能选择图片");
     return false;
     }*/
    var reader = new FileReader(); // 返回一个新的FileReader函数
    reader.readAsDataURL(file);
    reader.onloadstart = function (e){ 
        console.log(e)
        console.log('开始了')
    }
    reader.onprogress = function(e){
        console.log(e)
    }
    reader.onload = function (e) {
        console.log(e);
        console.log(reader.result);
        txshow.src = this.result;
        document.getElementById("data").innerText=this.result.substring(this.result.indexOf(',') 1);
    }
    reader.onloadend = function(e){
        console.log(e)
        console.log('结束了')
    }
}

小提示

function fileFormData(files){
    console.log(this.files[0])
    console.log(files.target.files[0])
}

在上传文件中,this.files[0]全等于files.target.files[0]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持Devmax。

JS使用base64格式上传文件的更多相关文章

  1. html5 拖拽及用 js 实现拖拽功能的示例代码

    这篇文章主要介绍了html5 拖拽及用 js 实现拖拽,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. 使用canvas压缩图片大小的方法示例

    这篇文章主要介绍了使用canvas压缩图片大小的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  3. 手对手的教你用canvas画一个简单的海报的方法示例

    企业的广告投入开始从电视等传统媒体向基于圈层文化的新媒体精准营销转移,很多人都想制作一张属于自己的海报,本文介绍了手对手的教你用canvas画一个简单的海报的方法示例,感兴趣的可以了解一下

  4. 浅谈移动端网页图片预加载方案

    这篇文章主要介绍了浅谈移动端网页图片预加载方案 的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. amaze ui 的使用详细教程

    这篇文章主要介绍了amaze ui 的使用详细教程,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. html5 canvas合成海报所遇问题及解决方案总结

    这篇文章主要介绍了html5 canvas合成海报所遇问题及解决方案总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. 使用html2canvas实现将html内容写入到canvas中生成图片

    这篇文章主要介绍了使用html2canvas实现将html内容写入到canvas中生成图片,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  8. Canvas与图片压缩的示例代码

    本篇文章主要介绍了Canvas与图片压缩的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  9. web字体加载方案优化小结

    这篇文章主要介绍了web字体加载方案优化小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  10. ios – 使用Base64和JSON上传大图像

    我正在使用此功能使用JSON将图像上传到服务器.为此,我首先将图像转换为NSData,然后使用Base64转换为Nsstring.当图像不是很大时,该方法可以正常工作,但是当我尝试上传2Mb图像时,它会崩溃.问题是,即使调用didReceiveResponse方法以及返回的didReceiveData,服务器也不会接收我的图像.起初我认为这是一个超时问题,但即使将其设置为1000.0它仍然不起作用.任何的想法?

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部