如何使用 Fine Uploader 阻止缺少 "DateTimeOriginal" exif 数据的上传?
How do I block uploads that lack "DateTimeOriginal" exif data with Fine Uploader?
我有一个应用程序,其中绝对需要在照片上添加 DateTimeOriginal 时间戳。有没有办法让我停止上传并使用 Fine Uploader 显示消息?
我从未听说过 "taken-at" 标签,我不认为这是一个标准字段。此答案的其余部分假定您确实想要关注此标签,但即使您不想,您也可以在下面的源代码中进行简单更改以关注另一个 EXIF 标签。
一种方法是检查 onSubmit
回调处理程序中的每个文件,如果文件不包含 "taken-at" 字段,则简单地拒绝该文件。以下示例利用 exif-js library 解析图像文件的 EXIF 数据:
var uploader = new qq.FineUploader({
callbacks: {
onSubmit: function(id) {
var blob = this.getFile(id)
return new Promise(function(resolve, reject) {
EXIF.getData(blob, function() {
var takenAt = EXIF.getTag(this, 'taken-at')
if (takenAt) {
resolve()
}
else {
reject()
}
})
})
}
}
})
我有一个应用程序,其中绝对需要在照片上添加 DateTimeOriginal 时间戳。有没有办法让我停止上传并使用 Fine Uploader 显示消息?
我从未听说过 "taken-at" 标签,我不认为这是一个标准字段。此答案的其余部分假定您确实想要关注此标签,但即使您不想,您也可以在下面的源代码中进行简单更改以关注另一个 EXIF 标签。
一种方法是检查 onSubmit
回调处理程序中的每个文件,如果文件不包含 "taken-at" 字段,则简单地拒绝该文件。以下示例利用 exif-js library 解析图像文件的 EXIF 数据:
var uploader = new qq.FineUploader({
callbacks: {
onSubmit: function(id) {
var blob = this.getFile(id)
return new Promise(function(resolve, reject) {
EXIF.getData(blob, function() {
var takenAt = EXIF.getTag(this, 'taken-at')
if (takenAt) {
resolve()
}
else {
reject()
}
})
})
}
}
})