HTML5 无法在 firefox 中加载图像 android 对于大小大于 1MB 的图像
HTML5 Image load not working in firefox android for images with size greater than 1MB
我正在基于此 https://demos.phplift.net/javascript-image-compress-using-html5-canvas-file-api/ 创建图像预览和上传页面。它在所有网络浏览器中工作正常,在 android firefox(版本 88.1.4)中它不适用于大小大于 1MB 的图像,在 android chrome 浏览器中没有问题。当我检查图像加载时(在代码中它是 i.onload())函数不会触发 firefox
中的大图像
html
<form id="upload_form">
<label for="file">Choose file</label>
<input type="file" id="fileinput" />
</form>
javascript函数是
<script>
var output_format = null;
var file_name = null;
function readFile(evt) {
var file = evt.target.files[0];
var reader = new FileReader();
reader.onload = function(event) {
var i = document.getElementById("source_image");
console.log(i);
i.src = event.target.result;
i.onload = function(){
console.log("Image loaded");
}
};
output_format = file.name.split(".").pop();
file_name = file.name;
console.log("Filename:" + file.name);
console.log("Fileformat:" + output_format);
console.log("Filesize:" + (parseInt(file.size) / 1024) + " Kb");
console.log("Type:" + file.type);
reader.readAsDataURL(file);
return false;
}
document.getElementById("fileinput").addEventListener("change", readFile, false);
</script>
有谁知道为什么大于 1 MB 的图像在 firefox 中不触发图像加载?
不要使用 FileReader...
认为这可行:
i.src = URL.createObjectURL(file)
我正在基于此 https://demos.phplift.net/javascript-image-compress-using-html5-canvas-file-api/ 创建图像预览和上传页面。它在所有网络浏览器中工作正常,在 android firefox(版本 88.1.4)中它不适用于大小大于 1MB 的图像,在 android chrome 浏览器中没有问题。当我检查图像加载时(在代码中它是 i.onload())函数不会触发 firefox
中的大图像html
<form id="upload_form">
<label for="file">Choose file</label>
<input type="file" id="fileinput" />
</form>
javascript函数是
<script>
var output_format = null;
var file_name = null;
function readFile(evt) {
var file = evt.target.files[0];
var reader = new FileReader();
reader.onload = function(event) {
var i = document.getElementById("source_image");
console.log(i);
i.src = event.target.result;
i.onload = function(){
console.log("Image loaded");
}
};
output_format = file.name.split(".").pop();
file_name = file.name;
console.log("Filename:" + file.name);
console.log("Fileformat:" + output_format);
console.log("Filesize:" + (parseInt(file.size) / 1024) + " Kb");
console.log("Type:" + file.type);
reader.readAsDataURL(file);
return false;
}
document.getElementById("fileinput").addEventListener("change", readFile, false);
</script>
有谁知道为什么大于 1 MB 的图像在 firefox 中不触发图像加载?
不要使用 FileReader... 认为这可行:
i.src = URL.createObjectURL(file)