asp.net - 将图像上传到服务器后缺少图像关键字

Abd*_*had 13 c# asp.net-mvc xmp iptc fine-uploader

我正在将图像上传到服务器,然后处理图像.有趣的是,上传图像后,关键字丢失了.虽然有其他图像属性.

在此输入图像描述

解析标记没有问题,因此请忽略下面的代码段.

using (var xmp = Xmp.FromFile(workingFilePath, XmpFileMode.ReadOnly))
{
    var iptc = new Iptc(xmp);
    var Keywords = iptc.Keywords;
}
Run Code Online (Sandbox Code Playgroud)

注意:我正在使用FineUploader上传图片.

FineUploader配置 -

var manualUploader = new qq.FineUploader({
    element: document.getElementById('fine-uploader-manual-trigger'),
    template: 'qq-template-manual-trigger',
    request: {
        endpoint: '/image/uploadimage',
        params: {
            datestamp: datetimeStamp
        }
    },
    callbacks: {
    },
    autoUpload: false,
    multiple: true
});

qq(document.getElementById("trigger-upload")).attach("click", function () {
    manualUploader.uploadStoredFiles();
});
Run Code Online (Sandbox Code Playgroud)

Fineuploader日志 -

 [Fine Uploader 5.10.1] Received 1 files.
 [Fine Uploader 5.10.1] Attempting to validate image.
 [Fine Uploader 5.10.1] Generating new thumbnail for 0
 [Fine Uploader 5.10.1] Attempting to draw client-side image preview.
 [Fine Uploader 5.10.1] Attempting to determine if _DSE8404.jpg can be rendered in this browser
 [Fine Uploader 5.10.1] First pass: check type attribute of blob object.
 [Fine Uploader 5.10.1] Second pass: check for magic bytes in file header.
 [Fine Uploader 5.10.1] '_DSE8404.jpg' is  able to be rendered in this browser
 [Fine Uploader 5.10.1] Moving forward with EXIF header parsing for '_DSE8404.jpg'
 [Fine Uploader 5.10.1] EXIF Byte order is little endian
 [Fine Uploader 5.10.1] Found 10 APP1 directory entries
 [Fine Uploader 5.10.1] Successfully parsed some EXIF tags
 [Fine Uploader 5.10.1] Sending simple upload request for 0
 [Fine Uploader 5.10.1] xhr - server response received for 0
Run Code Online (Sandbox Code Playgroud)

编辑: 看起来我发现了这个问题.标签中有一些冰岛字符.那就是问题所在.谁知道如何解决这个问题!

最新编辑 如果已从Adobe Photoshop Lightroom添加这些标签,则面临此问题.但是如果通过更新属性从Windows机器添加相同的标签,它就可以工作!

Joh*_*lip 3

您的问题可能有两个原因:

  1. 在某些时候,您正在重写您的图片,可能使用一个无法正确处理标签或由于其配置而将其删除的类。
    如果您只是保存从客户端收到的确切二进制内容,您还将检索原始标签,前提是您的图像文件的格式符合您期望的方式。

  2. 如果您的图像文件的存储方式与您期望的不同,则可能无法检索标签,具体取决于您提取标签的方式。
    例如,JPG/JPEG标签可以以各种方式存储(XMP 就是其中之一)。检查以下链接了解更多详细信息。您将看到还有其他方式来存储标签(例如EXIF, Extended XMP, QVCI, FLIR)。
    要检索这些标签,您必须根据它们嵌入图像文件的方式来解析它们。
    从您发布的服务器端代码来看,您似乎只解析 XMP 标签。根据用于对原始图像进行编码的软件,标签可以以替代格式存储

虽然看起来很明显,但我的建议是:

  1. 确保您的工作流程不涉及客户端发送的内容与服务器上保存的内容之间的 任何显式隐式 图像操作。
  2. 话虽如此,您还必须确保根据标签的格式以适当的方式提取标签

JPEG由于文件的存储方式多种多样,因此它们确实很难正确处理。