javascript base64 作为文件上传。

例如我们用某些 裁剪插件 得到的图片是

<ing src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBFB/ KEAUFFR0Cbng3nQPw68ArZdAlOZppPFIBhH5EAB8b+Tlt9MYQ6i1BuqFaq1CKSVcxZ2Acs6406KUgpt5/ LCKuVgz5BDCSb13ZO99ZOdcZGvt4mJjzMVKqcha68iIePB86GAiOv8CDADlIUQBs7MD3wAAAABJRU5ErkJggg==">

这样的,那这样的文件怎样在from 表单上传(当然我是举例,大部分的裁剪插件都是有内置的)

首先需要 吧 base64 流转换成 blob 对象,文件对象都继承它。

函数如下:

function getBlobBydataURI(dataURI,type) {
    var binary = atob(dataURI.split(',')[1]);
    var array = [];
    for(var i = 0; i < binary.length; i++) {
        array.push(binary.charCodeAt(i));
    }
    return new Blob([new Uint8Array(array)], {type:type });
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小程序中可以通过将文件转换为 base64 编码的形式来实现文件上传。下面是一个简单的示例代码,展示了如何在小程序中实现 base64 文件上传: ```javascript // 选择文件并转换为 base64 wx.chooseImage({ count: 1, success: function(res) { const filePath = res.tempFilePaths[0] wx.getFileSystemManager().readFile({ filePath: filePath, encoding: 'base64', success: function(data) { const base64Data = data.data // 将 base64 数据上传到服务器 wx.request({ url: 'https://example.com/upload', method: 'POST', data: { file: base64Data }, success: function(response) { console.log('文件上传成功', response) // 处理服务器返回的响应数据 }, fail: function(error) { console.log('文件上传失败', error) // 处理上传失败的情况 } }) }, fail: function(error) { console.log('读取文件失败', error) // 处理文件读取失败的情况 } }) }, fail: function(error) { console.log('选择文件失败', error) // 处理文件选择失败的情况 } }) ``` 上述代码首先调用 `wx.chooseImage` 方法选择文件,然后使用 `wx.getFileSystemManager().readFile` 方法将文件读取为 base64 编码。接着,使用 `wx.request` 方法将 base64 数据上传到服务器。请将示例代码中的 `https://example.com/upload` 替换为真实的服务器接口地址。 需要注意的是,由于 base64 编码会增加文件大小,因此在上传较大文件时可能会遇到一些限制,如上传超时或服务器限制。同时,传输大量的 base64 数据也会消耗较多的网络流量和服务器资源。在实际开发中,请根据具体需求和服务器限制进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值