如果我上传一个大图片,比如20MB,它不会在Firefox中显示,但它在其他浏览器上运行没有任何问题,比如Chrome、Brave、Edge或Opera.对于较小的图像,例如5MB,图像将显示在Firefox上.
有没有办法解决这个问题,或者这是Firefox中的一个常见错误?
一种解决方案是使用URL.createObjectURL(file)
,但我需要图像内容,因为我还将图像发送到我的后端.
有没有一个解决方案可以在Firefox上使用FileReader()
?
或者,我将不得不通过URL.createObjectURL(file)
显示图像,并通过FileReader()
获得内容.
代码:
window.addEventListener("load", () => {
document.getElementById("error").addEventListener("change", e => {
const reader = new FileReader()
reader.addEventListener("load", () => {
document.getElementById("error_img").src = reader.result
})
reader.readAsDataURL(e.target.files[0])
})
document.getElementById("success").addEventListener("change", e => {
document.getElementById("success_img").src = URL.createObjectURL(e.target.files[0])
})
})
div {
display: grid;
grid-template:
"a b"
"c d";
}
img {
display: block;
object-fit: contain;
width: 90%;
height: 90%;
}
<div>
<label>
Error
<input type="file" id="error">
</label>
<label>
Works
<input type="file" id="success">
</label>
<img src="" alt="" id="error_img">
<img src="" alt="" id="success_img">
</div>