Fine Uploader:在上传之前调整大文件的大小?

时间:2013-04-08 09:20:05

标签: file-upload fine-uploader

我正在评估Fine Uploader与其他各种选项进行比较,特别是JQuery File Upload

与JQuery File Uploader相比,我通常更喜欢Fine Uploader方法,因为它具有依赖于Bootstrap和JQuery UI的JQuery File Uploader。

然而,能够调整图像大小非常重要:例如,用户可能会从相机中选择一个大文件,这可能非常大 - 上传全分辨率照片可能需要很长时间 。 JQuery文件上传这个。

此外,我们对高分辨率文件没有多大用处。

如果可能(我知道某些浏览器可能不支持此功能),我希望能够调整客户端大小的图像。

这可能吗?

1 个答案:

答案 0 :(得分:2)

Fine Uploader目前不支持图像操作。这是我们积压的一个功能,但我们没有很多用户告诉我们他们对此感兴趣。这是为什么尚未在本地实现此类功能的原因之一。有一个案例,#707标志着Fine Uploader的本机图像编辑支持的开始。 暂定计划用于4.0。

但是,您当然可以使用FileReaderCanvas来调整图片大小。然后,您可以通过Blob API方法将此已调整大小的图片作为addFiles提交给Fine Uploader。此时,文件已提交,Fine Uploader已准备好上传该项目。

基本上,在Fine Uploader本身支持图像处理之前,您将遵循处理此特定方案的步骤:

  1. 提供您自己的文件输入元素或使用Fine Uploader的文件/文件夹拖放支持来获取用户选择的某些文件的句柄。
  2. 使用FileReader读取图像内容。
  3. FileReader会为您提供图片的网址,并将其分配给src元素的img属性。
  4. img绘制到canvas元素上。这是调整大小的地方。
  5. canvas元素(canvas.toDataURL(...))中抓取已调整大小的图片的网址。
  6. 将网址转换为Blob
  7. Blob传递给Fine Uploader的addFiles API方法。
  8. 通过向Fine Uploader添加本机图像处理支持,目的是为将来的整合者(例如你自己)提供大部分内容。

    希望这有帮助。