JS使用base64格式上传文件

本文实例为大家分享了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]

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

(0)

相关推荐

  • 一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子

    jQuery插件AjaxFileUpload可以实现ajax文件上传,该插件使用非常简单,首先了解一下正确使用AjaxFileUpload插件的方法,然后再了解一些常见的错误信息和解决方法. 使用说明 需要使用jQuery库文件 和AjaxFileUpload库文件 使用实例 一,包含文件部分 复制代码 代码如下: <script type="text/javascript" src="jquery.js"></script> <scr

  • file控件选择上传文件确定后触发的js事件是哪个

    一直以来纠结于这个问题.今天闲来上网搜索了一下这个问题.终于知道答案.是onchange事件.经过本人测试,可用.还有说onpropertychange也可以.经chrome浏览器测试,无效果.不知道是什么原因.

  • js判断上传文件后缀名是否合法

    本文实例介绍了js判断上传文件后缀名是否合法的详细代码,分享给大家供大家参考,具体内容如下 效果图: 选择文件 选择1.jpg文件 上传成功合法 除图片文件格式以外,其他都是不合法的操作. 具体代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>判断文件上传是否合法</tit

  • jQuery实现jQuery-form.js实现异步上传文件

    做为一个前端开发,你肯定遇到过这样的需求:异步上传文件,还要兼容IE 8.[纳尼,没遇到过,那你们产品和UI对你也忒好了吧. 遇到这种需求,如果项目不是很赶,可以自己用iframe来做,如果项目比较赶的话,就可以使用jquery-form.js插件来实现,方便快捷. 一.举个栗子 1.先下载 JQuery-form.js文件并引入,也可以使用CDN,因为是jquery插件,所以需要先引入jquery. 2.html 部分: <form action='' enctype="multipar

  • 简单实现js上传文件功能

    本文实例为大家分享了js实现上传文件功能的具体代码,供大家参考,具体内容如下 一.用input完成上传,效果图如 选择文件后,提交后出现图片url 二.传输格式采用form-data形式. html代码 <form id="upload" enctype="multipart/form-data" method="post"> <input type="file" name="file"

  • js实现点击按钮弹出上传文件的窗口

    1.详细描述 在页面上设置一个"选择文件"按钮,点击该按钮,会弹出本地磁盘信息用于选择文件. 2.代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Demo</title> <script type="text/javascript"> function F_Open_dialog() {

  • JS中使用FormData上传文件、图片的方法

    关于FormData XMLHttpRequest Level 2添加了一个新的接口  ---- FormData 利用FormData对象,可以通过js用一些键值对来模拟一系列表单控件,可以使用XMLHttpRequest的 send( ) 方法来异步提交表单与普通的ajax相比,使用FormData的最大优点就是可以异步上传二进制文件 FormData对象 FormData对象,可以把所有表单元素的name与value组成一个queryString,提交到后台. 在使用ajax提交时,使用F

  • 使用ajaxfileupload.js实现ajax上传文件php版

    无论是PHP,还是其他的服务端脚本都提供了文件上传功能,实现起来也比较简单.而利用JavaScript来配合,即可实现Ajax方式的文件上传.虽然jQuery本身没有提供这样的简化函数,但有不少插件可以实现.其中,Phpletter.com提供的ajaxfileupload.js是一个轻量的插件,而且编写方式与jQuery提供的全局方法$.post()非常相似,简单易用. 不过,该插件实在太简化了,除了可提供需上传文件的路径外,也就不能传递额外的值到后台服务端.所以,我修改了一下该脚本,增加个一

  • js获取上传文件的绝对路径实现方法

    在html中 <input type="file" id="importFile" /> <input type="button" onclick="upload()"/> <script> function upload() { var filename = document.getElementById("importFile").value; // 这时的filen

  • js获取判断上传文件后缀名的示例代码

    复制代码 代码如下: function lastname(){ //获取欲上传的文件路径var filepath = document.getElementById("file1").value; //为了避免转义反斜杠出问题,这里将对其进行转换var re = /(\\+)/g; var filename=filepath.replace(re,"#");//对路径字符串进行剪切截取var one=filename.split("#");//获

随机推荐