使用 ngFlow 以数据 uri 格式发送图像

Posted

技术标签:

【中文标题】使用 ngFlow 以数据 uri 格式发送图像【英文标题】:Send an image in the data uri format using ngFlow 【发布时间】:2016-09-13 13:46:31 【问题描述】:

我正在使用输入来加载图像,然后将其转换为数据 uri 格式以将其传递到 ngImgCrop 指令以裁剪该图像。

到目前为止,我已经完成了所有这些工作,但我正在努力尝试使用 ngFlow 上传数据 uri 格式的裁剪图像。

我已经尝试了几种方法都没有成功,有没有人能够做到这一点?

恐怕我遗漏了一些东西,我尝试使用.addFile() 方法并以数据uri 格式传递图像,但它不起作用。

【问题讨论】:

【参考方案1】:

我终于找到了解决方案,创建了一个 Blob 并将其推送到 Flow 的文件数组中工作!

This *** answer 也有帮助,因为我必须将数据 uri 格式的图像转换为二进制来创建 Blob(函数 dataURItoBlob() 为我做了)。

这是执行此操作的代码:

function uploadImage($flow) 
  if ($flow) 
    // 'vm.img.cropped' is the image in data uri format to upload
    var blob = dataURItoBlob(vm.img.cropped);
    blob.name = 'file.png';

    var file = new Flow.FlowFile($flow, blob);
    $flow.files.push(file)

    $flow.upload();
  


function dataURItoBlob(dataURI) 
  var binary = atob(dataURI.split(',')[1]);
  var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
  var array = [];
  for(var i = 0; i < binary.length; i++) 
    array.push(binary.charCodeAt(i));
  
  return new Blob([new Uint8Array(array)], type: mimeString);
;

【讨论】:

以上是关于使用 ngFlow 以数据 uri 格式发送图像的主要内容,如果未能解决你的问题,请参考以下文章

xml 如何使用URI以json格式将多个图像保存到localdb

将图像作为数据 URI 存储在数据库 BLOB 中是否很糟糕?

如何使用 Ajax 以数组格式将多个图像从 MVC 视图发送到控制器?

如何在 android 中以 html 格式的电子邮件发送图像?

python 使用嵌入的附件和图像以HTML格式发送电子邮件。

iOS 集合视图滚动滞后