尝试在'fileSize'字段(空值)上执行算术运算的问题

如何解决此错误或可能的解决方法?

各位,我使用Lua语言开发了插件,可以集成或从Adobe的LightRoom Classic中运行。目前我需要上传或发送文件到服务器,但我无法上传。每次调用后API(multipart/form-data)都会弹出错误“ 尝试在'fileSize'字段(空值)上执行算术运算”。在API被调用之前,这个错误甚至会出现。调试后,我可以确定可能的问题在于创建文件类型的mimeChunks上。

我已经像下面这样开发了代码,请帮我提供建议,以便我能够解决问题吗?

local filePath = assert("C:\Users\Ankit\Desktop\Hangman.PNG")
local fileName = LrPathUtils.leafName(filePath)

local mimeChunks = {}
mimeChunks[#mimeChunks + 1] = {
  name = 'api_sig',
  value = "test value"
}
mimeChunks[#mimeChunks + 1] = {
  name = "file",
  filePath = filePath,
  fileName = fileName,
  contentType = "application/octet-stream"
}

local postUrl = "API端点"
local result, hdrs = LrHttp.postMultipart(postUrl, mimeChunks)
if result then
  LrDialogs.message("表单值", result)
else
  LrDialogs.message("表单值", "API问题")
end

原文链接 https://stackoverflow.com/questions/69309356

点赞
stackoverflow用户5783700
stackoverflow用户5783700

最终,图片或文件路径本身会导致问题,没有与此功能相关的指示或文章,但是是的,“add-on backslash”肯定可以解决问题。请查看以下代码,以获取更详细的细分,该代码传递动态选择的文件或图像路径。

local function uploadFile(filePath)
    local fileName = LrPathUtils.leafName( filePath )
    local mimeChunks = {}
    mimeChunks[ #mimeChunks + 1 ] = { name = 'api_sig', value = "test value"}
    mimeChunks[#mimeChunks + 1] = {
        name = "file",
        filePath = filePath,
        fileName = fileName,
        contentType = "image/jpeg"  --multipart/form-data  --application/octet-stream
    }
    import "LrTasks".startAsyncTask(
        function()
            local postUrl = "http://cms.local.com/api/v1/upload"
            local result, hdrs = LrHttp.postMultipart(postUrl, mimeChunks)
            if result then
                LrDialogs.message("Image uploaded.", result)
            else
                LrDialogs.message("Error", "API issue")
            end
        end
    )
end

上述的uploadFile方法将自动调用API并发布表单数据集。以下代码是为了调用uploadFile函数并从目录中选择所有图像。

for p, photo in ipairs(LrApplication.activeCatalog()) do
    uploadFile(assert(photo:getRawMetadata('path')));
end

上述代码将帮助您选择 Adobe 的 LightRoom 插件中的目录。

2021-09-27 09:33:01