javascript - 如何使用具有浏览器兼容性的jquery获取文件上传的base_64字符串?

标签 javascript php jquery csv

嗨,任何人都可以帮助我,我只需要获取我想要上传的 csv 文件的 base_64 代码

这是我的带有 csv 过滤器的代码

function readCSV(input) {
    if (input.files && input.files[0]) {

        var filename = input.files[0].name;
        var ext = filename.split('.').pop();

        if(input.files[0].type == "text/csv" || ext == "csv" || ext == "xls"){
            var reader = new FileReader();

            reader.onload = function (e) {
            var base_64 = e.target.result;
            console.log(base_64);

            var array = new Uint8Array(100);
                array[42] = 10;
                $('#file_name').html(input.files[0].name);
                $('#filename').val(input.files[0].name);
                $('#content').val(base_64);

            }
            reader.readAsDataURL(input.files[0]);
        }else{
            $('#file_name').html('<span style="color:red; font-size:11px"><i class="fa fa-ban"></i> Invalid File Please try again!</span>');
        }
    }
}

当我 console.log(base_64)

时,在我的 logcat 中

Google Chrome 的结果是

data:base64,UHJvZHVjdCBOYW1lL....(rest of base_64 string)

我只需要有 base_64 字符串

所以我想出了这个解决方案

//替换函数 content.replace('data:;base64,', '');

我只是删除了字符串中的data:base64,

但是当我在 Firefox 中尝试时,结果是

data:application/octet-stream;base64,UHJvZHVjdCBOYW1lL....(base_64 字符串的其余部分)

与第一个结果不同,因此我的替换功能不起作用

但我不想添加另一个替换功能,因为我担心如果浏览器推送更新,data:base64 可能会是 1.0.data:base64v.1.data:base64 因此,每当字符串发生更改时,我的系统就会失败。

有人可以帮我吗?我只需要获取 base_64 字符串,提前致谢。

最佳答案

我将使用逗号作为分隔符来分割字符串,然后从新创建的数组中获取最后一个元素,该元素将代表您的 Base64 数据:

//split into ['data:application/octet-stream;base64', 'UHJvZHVjdCBOYW1lL']
var arr = content.split(',');
var base64 = arr[arr.length-1];

正如 bergi 提到的,base64 数据是 defined to appear最后一个逗号之后

关于javascript - 如何使用具有浏览器兼容性的jquery获取文件上传的base_64字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24073893/

相关文章:

javascript - 运行动画后如何删除该元素?

javascript - 如何将新数据合并到旧数组中?

php - 如何正确设置这四个查询的格式?

javascript - jquery 计算动态添加的行

javascript - 增加点击时的数据属性

javascript - 如果存在其他类则隐藏类

javascript - 一页上有多个颜色选择器,带有指向输入框的链接

javascript - 如何判断复选框是否被选中?

php - Wordpress cforms session 仅在 Firefox 中丢失!

php - 如何从php中的数组中获取特定数据