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

2024-01-20

我正在开发一个用于从移动设备上传照片的网页,使用<input type="file" accept="image/*"/>标签。这在 iPhone 和 Android 上的 Chrome 上运行得很好,但我们遇到的问题是 Android 浏览器的问题。

当您从图库中选择文件时就会出现问题(当您使用相机拍照时效果很好)。我们进一步缩小了范围,发现从图库浏览器上获取数据时,数据 MIME 类型不可用(下面的照片显示了正在加载的数据 URL 的前 100 个字符。目标是强制使用 JPEG ,但是如果没有 MIME 类型,我们无法确定如何解决此问题。请参阅下面的代码了解图像的渲染方式。

没有类型如何渲染图像?更好的是,有人知道为什么该类型在 Android 浏览器上不可用吗?

EDIT

首先,这些不是同一张图像,它们是在同一时间拍摄的,这不是问题,这就是数据不同的原因(MIME 类型不会出现在库存浏览器上的任何图像上,所以这不是问题。

Update

我通过将 image/jpeg 插入 Chrome 上的库存浏览器来确认 MIME 类型是问题所在。不幸的是,我们无法保证它是 jpeg,所以我们又不能那样做

 _readInputFile: function (file, index) {
            var w = this, o = this.options;
            try {

                var fileReader = new FileReader();

                fileReader.onerror = function (event) {
                    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."))
                    $('#loadingDots').remove();
                    return false;
                }
               fileReader.onload = function (event) {

                var data = event.target.result;
                //alert(data.substring(0,100));
                //var mimeType = data.split(":")[1].split(";")[0];


                alert("Load Image"); //I get to this point
                $('#' + w.disp.idPrefix + 'hiddenImages').append($('<img />', {
                    src: data,
                    id: "dummyImg" + index,
                    load: function(){
                    var width = dummy.width();
                    var height = dummy.height();
                    $('#dummyImg' + index).remove();
                    alert("Render"); // I don't get here
                        var resized = w._resizeAndRenderImage(data, null, null, biOSBugFixRequired, skewRatio, width, height);
                        alert("Image Rendered"); // I don't get here

                    }
                }));
            }
            fileReader.readAsDataURL(file);
        }
        catch (e) {
        }  
 } 

Chrome
Chrome

Stock Browser
Stock Browser


由于问题可能与浏览器相关,并且您无法真正修复浏览器(不过您可以向 Google 报告错误),因此我建议采取不同的路径。

看看这里:在 Node.js 中,给定一个 URL,如何检查它是否是 jpg/png/gif? https://stackoverflow.com/questions/8473703/in-node-js-given-a-url-how-do-i-check-whether-its-a-jpg-png-gif

请参阅已接受答案的评论,其中建议了一种使用文件流检查文件类型的方法。我非常确定这适用于浏览器实现的 Javascript,而不仅仅是 Node.js。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

库存浏览器从图库中选择照片的问题 的相关文章

  • 在 Jetpack Compose 中启动动画矢量 Drawable

    我有一个动画矢量可绘制R drawable my anim 我想在 Jetpack Compose 中展示并开始 可绘制对象显示 渲染正确 但动画未启动 这是撰写视图 Composable fun SplashView Surface mo
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 如何知道浏览器空闲时间?

    如何跟踪浏览器空闲时间 我用的是IE8 我没有使用任何会话管理 也不想在服务器端处理它 这是纯 JavaScript 方法来跟踪空闲时间 并在达到一定限制时执行一些操作 var IDLE TIMEOUT 60 seconds var idl
  • 将 onclick 事件应用于页面加载时不存在的元素

    我将列表样式设置为看起来像选择框 并且当用户单击列表中的元素时我想触发一个函数 但是该元素是通过加载的AJAX因此 当页面加载并且我无法绑定时不存在onclick事件到它onDomReady 如果我把它作为一个普通的选择列表 我可以只标记一
  • 使用 CSS 覆盖透明 div 中的不透明文本

    我试图使透明 div 内的文本没有不透明度 也就是全黑 div style background 3cc p style background 000 This text should be all black p div 只用 CSS 就
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL
  • Rails:找不到 JavaScript 运行时。有关可用运行时的列表,请参阅 https://github.com/sstephenson/execjs。 (ExecJS::运行时不可用)

    自从几周前 Dreamhost 升级了服务器以来 我的网站就被破坏了 我一直在努力解决它并取得了一些进展 但我仍然坚持希望是最后的问题 我在 Ruby 1 8 7 上使用 Rails 3 1 1 并收到来自 PhusionPassenger
  • JavaScript Promise 不执行 .then()

    我在 JavaScript 中的 Promise 方面遇到了一些问题 我想做的是获得一个地址列表 然后对于每个地址 我需要调用地理编码 API 来获取 lat lng 然后我将继续将标记与热图一起绘制 这是我的代码 let promiseK
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • CSS - div 与父 div 底部对齐(内联块)

    我知道这个 html 很草率 有一些不必要的额外 div 但无论如何 我无法理解为什么 ID 为 info box right 的 div 与父 div 的底部对齐 您可以看到 文本 与下面的 jsfiddle 示例的底部 有什么想法可以让
  • Android 设备上的静默安装

    我已经接受了一段时间了 在 Android 上静默安装应用程序是不可能的 也就是说 让程序安装捆绑为 APK 的应用程序 而不提供标准操作系统安装提示并完成应用程序安装程序活动 但现在我已经拿到了 Appbrain 快速网络安装程序的副本
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • 是否可以将请求标头添加到 CORS 预检请求中?

    我有一个从外部服务器 不是服务器 访问 API 的网站 为网站提供服务 通过简单的XmlHttpRequest 见下文 那个API 需要将用于访问服务的 API 密钥添加为请求标头 然而 正如这些CORS https developer m
  • SharedFlow 和 StateFlow 的主要区别

    两者有什么区别共享流 and 状态流 以及如何使用这些MVI建筑学 使用简单更好吗Flow或者这些作为状态和事件 Flow 是冷的 意味着它仅在收集数据时才发出数据 另外Flow不能保存数据 可以把它看成是水在里面流动的管道 Flow中的数
  • Android:有没有办法以毫安为单位获取设备的电池容量?

    我想获取设备的电池容量来进行一些电池消耗计算 是否可以以某种方式获取它 例如 三星 Galaxy Note 2 的电池容量为 3100mAh 谢谢你的帮助 知道了 在 SDK 中无法直接找到任何内容 但可以使用反射来完成 这是工作代码 pu
  • Android 如何聚焦当前位置

    您好 我有一个 Android 应用程序 可以在谷歌地图上找到您的位置 但是当我启动该应用程序时 它从非洲开始 而不是在我当前的城市 国家 位置等 我已经在developer android com上检查了信息与位置问题有关 但问题仍然存在
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 如何将图像从 Android 应用程序上传到网络服务器的特定文件夹中

    如何将图像从 android 移动到 Web 服务器上的指定文件夹 这是我的安卓代码 package com example bitmaptest import java io ByteArrayOutputStream import ja
  • 无法运行我的应用程序,要求选择 Android SDK

    今天我已经安装了Android Studio 金丝雀 1 现在我无法运行我的应用程序 将出现以下对话框 我已经通过 文件 gt 项目结构 gt Android SDK 位置 设置了正确的 SDK 位置 期待您的帮助来解决这个问题 警告对话框
  • 在 Google 地图上绘制线条/路径

    我很长一段时间都在忙于寻找如何在 HelloMapView 中的地图上的两个 GPS 点之间画一条线 但没有运气 谁能告诉我该怎么做 假设我使用扩展 MapView 的 HelloMapView 我需要使用叠加层吗 如果是这样 我是否必须重

随机推荐

  • 如何动态添加导航栏到 jQuery Mobile 应用程序

    如何动态地将导航栏添加到我的 jquery 移动应用程序中 我希望能够从 javascript 将导航栏元素添加到 dom 然后解析它们 我发现我可以根据需要将元素添加到 DOM 然后在元素上调用 navbar 它将执行导航栏解析 例如我可
  • Ormlite Android 批量插入

    谁能解释一下为什么我的插入在 Ormlite 中花费了这么长时间 在桌面上的一个 SQLite 事务中执行 1 700 次插入只需不到一秒 然而 当使用 Ormlite for Android 时 大约需要 70 秒 并且我可以在调试消息中
  • .NET几何库[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在 NET 中启动一个新项目 该项目需要一些几何算法 例如 检查点是否在多边形内部 贝塞尔曲线 线交
  • 在 C# 类库中使用 MATLAB MWArray.dll

    我正在尝试使用 dll 在 MATLAB 中使用 Matlab net Complier 构建 C 类库 但是每次初始化 MWArray dll 中的对象时程序都会引发异常 例如 MWNumericArray m new MWNumeric
  • json.dump 在看似有效的对象上抛出“TypeError:{...} 不是 JSON 可序列化”?

    背景 我正在编写一个 python 程序来管理我的音乐文件 它抓取目录并将文件及其元数据 通过诱变剂 以 JSON 编码 作为简单的 数据库 放入文件中 我的目录搜索很好 但是当我尝试保存数据库或编码为 JSON 时 它会抛出 TypeEr
  • 维护 web.config 文件

    我很想知道其他人如何维护已部署应用程序的 web config 文件 假设没有自动部署机制 这超出了这个问题的范围 因此 在开发过程中 一些开发人员可能会利用 web config 转换 构建 发布他们的项目 调试 发布 测试 实时配置 然
  • 如何撤消clearPackagePreferredActivities("com.android.launcher");

    我想做的是复制 ToddlerLock 应用程序的功能 我已经设法清除默认启动器 PackageManager localPackageManager getPackageManager localPackageManager clearP
  • 使用 Apollo/graphQL/React 访问和刷新令牌

    经过长时间的搜索 当访问令牌过期时 我为我的应用程序制定了这个解决方案 与其他服务的区别在于 我必须使用外部服务 在使用我的谷歌帐户登录时为我提供访问和刷新令牌 然后 当访问令牌过期时 我需要检索刷新令牌 将其发送到为我提供新访问和刷新令牌
  • C - 求结构的尺寸

    我被问到这个问题作为面试问题 无法回答 编写一个 C 程序来查找结构的大小 而不使用sizeof操作员 struct XYZ int x float y char z int main struct XYZ arr 2 int sz cha
  • ServiceStack.Text 是否提供 JSON 的漂亮打印?

    TL DR ServiceStack Text 中是否有内置方法来生成打印精美的 JSON 我在用ServiceStack Text https github com ServiceStack ServiceStack Text用于进行 J
  • 如何在 Angular2 的 Pipe 中将数组作为 arg 传递

    我创建了一个管道 其目的是根据标签列表过滤列表 Pipe name tagfilter export class TagFilterPipe implements PipeTransform transform items Event ar
  • 更改操作栏溢出的样式

    我在我当前的 android 应用程序中使用 Theme Holo 上面是我当前主题的溢出 UI 我想将溢出菜单的背景颜色自定义为 RGB 245 243 239 将字体颜色自定义为 RGB 64 64 64 以下是我正在使用的 style
  • 在 ActionBar 上放置一个进度条

    我试图在操作栏上放置一个不确定的进度栏 例如 我使用 actionView 来放置进度条 例如 Google 应用程序
  • 如何将模式模板的 let-c="close" 传递给其他组件的 html Angular 5

    我是 Angular 4 的新手 请帮助我 我有一个具有模式模板的组件 成分 import Component from angular core import NgbModal ModalDismissReasons from ng bo
  • Android studio 抛出 IOException:不允许操作

    现在 我正在为自己创建一个应用程序 它将数据附加到几个文件中 但是当我尝试创建文件 或者实际上打开它们 时 程序会抛出java io IOException Operation not permitted 如您所见 已授予存储权限 这个应用
  • pandas 是否会自动跳过行并进行大小限制?

    我们都知道这个问题 当你运行时出现内存错误 pandas 数据框的最大大小 https stackoverflow com questions 23569771 maximum size of pandas dataframe 442076
  • clang-format 何时断行继承列表?

    Clang format 总是将继承和类名放在同一行 无论我设置什么BreakInheritanceList to 我希望它以相同的方式格式化继承列表和构造函数初始值设定项列表 class Foo Parent int member pub
  • .NET 提供的有关 uri 和 url 的 api 的替代方案

    我最近意识到 使用 URL 和 URI 的 NET api 经常无法实现基本功能 至少很容易 包括 从相对路径生成 FQDN url 强制 https 或返回到http 获取网站的根 正确组合相对 URL 等等 是否有其他库可以将所有这些类
  • 新 AngularJS ng-ref 指令的陷阱

    The release of AngularJS V1 7 1 https github com angular angular js blob master CHANGELOG md 171 momentum defiance 2018
  • 库存浏览器从图库中选择照片的问题

    我正在开发一个用于从移动设备上传照片的网页 使用