javascript – 库存问题浏览器从图库中选择照片

前端之家收集整理的这篇文章主要介绍了javascript – 库存问题浏览器从图库中选择照片前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用< input type =“file”accept =“image / *”/>来处理用于从移动设备上传照片的网页.标签.这在iphoneandroid上的chrome上运行得很漂亮,但是我们遇到问题的地方是使用股票android浏览器.

从图库中选择文件时会出现问题(当您使用相机拍照时,它可以正常工作).我们已经进一步缩小范围,以便从库存浏览器的库中看到数据MIME类型不可用(下面的照片显示了正在加载的数据URL的前100个字符.目标是强制JPEG,但没有MIME类型,我们无法确定如何解决这个问题.请参阅下面的代码,了解图像的呈现方式.

如何在没有类型的情况下渲染图像?更好的是,有没有人知道为什么这个类型在股票Android浏览器上不可用?

编辑

首先,这些不是相同的图像,它们是在同一时间拍摄的,这不是问题,这就是为什么数据不同(MIME类型没有出现在股票浏览器上的任何图像上,所以这不是问题.

更新

我确认MIME类型是通过将image / jpeg插入到chrome所在的股票浏览器中的问题.不幸的是,我们无法保证它会成为jpeg,所以我们再也不能这样做

  1. _readInputFile: function (file,index) {
  2. var w = this,o = this.options;
  3. try {
  4. var fileReader = new FileReader();
  5. fileReader.onerror = function (event) {
  6. alert(w._translate("There was a problem opening the selected file. For mobile devices,some files created by third-party applications (those that did not ship with the device) may not be standard and cannot be used."))
  7. $('#loadingDots').remove();
  8. return false;
  9. }
  10. fileReader.onload = function (event) {
  11. var data = event.target.result;
  12. //alert(data.substring(0,100));
  13. //var mimeType = data.split(":")[1].split(";")[0];
  14. alert("Load Image"); //I get to this point
  15. $('#' + w.disp.idPrefix + 'hiddenImages').append($('required,skewRatio,width,height);
  16. alert("Image Rendered"); // I don't get here
  17. }
  18. }));
  19. }
  20. fileReader.readAsDataURL(file);
  21. }
  22. catch (e) {
  23. }
  24. }

股票浏览器

最佳答案
由于该问题可能与浏览器相关,而且您无法真正修复浏览器(您可以向Google报告错误),我建议采取不同的方式.

看看这里:
In Node.js,given a URL,how do I check whether its a jpg/png/gif?

请参阅接受的答案的注释,该答案建议使用文件流检查文件类型的方法.我很确定这可以用于浏览器实现的Javascript,而不仅仅是Node.js.

猜你在找的JavaScript相关文章