如何使用 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()
           }
         })
       })
     } 
   }
})