我已經包含上傳文件的列表:如何比較上傳文件的寬度和高度?
let files = [File, File, File...];
和另一上傳文件進行比較:
let file = ...;
我要檢查的file
存在於列表或不(通過比較name/width/height/size/type
) ;
這裏是我的方法:
let f = files.find(function (x) {
return x.name === file.name && x.type === file.type &&
x.width === file.width && x.height === file.height &&
x.size === file.size;
});
if (f) {
// exist
}
但x.width
,x.height
,file.width
和file.height
總是返回undefined
。
undefined
總是等於undefined
(當然=))),但這不是我的意思,我想要得到真正的價值。
感謝this answer,我編輯了一些地方,但尚未完成。
let f = files.find(function (x) {
let x_img = new Image();
x_img.onload = function() {
let file_img = new Image();
file_img.onload = function() {
// we can compare x_img width/height and file_img width/height here
// but these functions look like the callback function
// so we can't delay to get width and height
};
file_img.src = window.URL.createObjectURL(file);
};
x_img.src = window.URL.createObjectURL(x);
// the main predicate here
return x.name === file.name && x.size === file.size && x.type === file.size &&...
// and how to compare width and height?
});
你能幫我完成代碼嗎?謝謝!
根據您的要求比較'name','size'和'lastModified'應該足以檢測,如果用戶選擇了相同文件兩次。 – Prinzhorn
@Prinzhorn謝謝,這也意味着:在這種情況下,我無法獲取和比較'width/height'? – Vayne