?:0:尝试对字段 'fileSize' 执行算术运算(零值)
?:0: attempt to perform arithmetic on field 'fileSize' (a nil value)
如何解决错误或可能的解决方法?
伙计们,我使用 Lua 语言开发了可以集成的插件,或者 运行 来自 Adobe 的 LightRoom Classic。目前我需要上传或发送文件到服务器,但我不能。每次我调用 POST API 时,它是 multipart/form-data 错误弹出窗口“?:0:尝试在字段 'fileSize' 上执行算术(零值)”。甚至 API 都没有被调用,这个错误会在 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 endpoint"
local result, hdrs = LrHttp.postMultipart(postUrl, mimeChunks)
if result then
LrDialogs.message("Form Values", result)
else
LrDialogs.message("Form Values", "API issue")
end
最终图像或文件路径本身导致了问题,没有与此功能相关的指示或文章,但是“附加反斜杠”肯定会解决.请查看下面的代码以了解更详细的分叉,它传递动态 selected 文件或图像路径。
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和post表单数据收集。下面的代码用于调用 uploadFile 函数,其中 select 目录中的所有图像。
for p, photo in ipairs(LrApplication.activeCatalog()) do
uploadFile(assert(photo:getRawMetadata('path')));
end
以上代码将帮助您使用 Adobe 的 LightRoom 插件select分类日志。
如何解决错误或可能的解决方法?
伙计们,我使用 Lua 语言开发了可以集成的插件,或者 运行 来自 Adobe 的 LightRoom Classic。目前我需要上传或发送文件到服务器,但我不能。每次我调用 POST API 时,它是 multipart/form-data 错误弹出窗口“?:0:尝试在字段 'fileSize' 上执行算术(零值)”。甚至 API 都没有被调用,这个错误会在 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 endpoint"
local result, hdrs = LrHttp.postMultipart(postUrl, mimeChunks)
if result then
LrDialogs.message("Form Values", result)
else
LrDialogs.message("Form Values", "API issue")
end
最终图像或文件路径本身导致了问题,没有与此功能相关的指示或文章,但是“附加反斜杠”肯定会解决.请查看下面的代码以了解更详细的分叉,它传递动态 selected 文件或图像路径。
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和post表单数据收集。下面的代码用于调用 uploadFile 函数,其中 select 目录中的所有图像。
for p, photo in ipairs(LrApplication.activeCatalog()) do
uploadFile(assert(photo:getRawMetadata('path')));
end
以上代码将帮助您使用 Adobe 的 LightRoom 插件select分类日志。