gpt4 book ai didi

javascript - 使用裁剪 UI 进行挑选调用后,来自 filepicker.io JS API v2 转换调用的错误 142

转载 作者:行者123 更新时间:2023-12-03 09:39:34 24 4
gpt4 key购买 nike

我使用的是付费 Filepicker.io 帐户。

我通过 JS API 版本 2 进行转换调用时返回错误 142。

错误对象的 toString 方法告诉我包含 filepicker_debug.js 以获取更多信息,但该文件给出 404,所以这没有帮助。

The docs假设142表示“用户的文件无法使用请求的参数进行转换”。我发送的参数是{width: 240, height: 240}

我的代码运行 pick 操作(利用裁剪 UI),然后将回调中可用的“Blob”传递给 store 命令(有效)和 convert 命令(无效)。

我尝试删除 store 命令,因此只需pick,然后convert,但没有任何变化。

如上所述,我传递的convert选项是{width: 240, height: 240}。我还尝试传递额外的选项,例如 fit:clipfit:scalerotate:exif 但这不会改变任何东西。我还尝试在 pickAndStore 调用之后执行此操作,而不仅仅是 pick ;也没有变化。

我没有编辑从 pick 命令返回的“Blob”,它与 store 命令一起使用,所以我认为这可能不是问题(就像 a similar issue 中那样)。我不认为我在那里做错了什么。

如果我查看从 Filepicker 返回的 HTTP 响应,它是一个 400 代码,并告诉我,例如,[uuid=16CB6B72517940C7] 无效的转换参数。如果我查看实际发送的内容,我想我可能会发现问题。

此特定 POST 请求已发送至 https://www.filepicker.io/api/file/ndayWb5GTmNyPoAOjSdg/convert?crop=955,621,954,954/convert&_cacheBust=1436084602394&plugin=js_lib,其中包含已发布的表单数据宽度:240,高度:240,storeLocation:“S3”,storePath:“storyimg/local/iq84xYTsu1jJaRcq_small.jpg”

那个 GET 参数 crop=955,621,954,954/convert 看起来相当可疑。我在“Blob”中看到属性url:“https://www.filepicker.io/api/file/ndayWb5GTmNyPoAOjSdg/convert?crop=955,621,954,954”。在我看来,库中的一些 JS 并不期望裁剪参数(可能是由裁剪 UI 添加的)存在于此处,而是盲目地添加 /convert 和其余部分。

Filepicker 人员:请修复此问题。

我尝试通过在将“Blob”对象传递给convert之前对其进行编辑来解决此问题。解决方法看起来有点像这样:

filepicker.pick({
cropRatio: 1,
services: ['convert', pickerType],
}, function (blob) {
filepicker.convert($.extend({}, blob, {
url: blob.url.replace(/\/convert\b.*/, ''),
}), {
width: 240,
height: 240,
crop: blob.url.replace(/.*[?&]crop=([0-9,]+)(?:&|$).*/, '$1').split(','),
}, storeOptions, function (blob) {
console.log("Convert completed successfully", blob);
}, handleError);
}, handleError);

这很丑陋,经过测试,我发现它实际上根本不起作用。裁剪没有发生。如果我删除 widthheight 它会正确裁剪,所以我知道提取裁剪参数的方式是正确的,但是使用 widthheight 调整整个图像的大小,而不仅仅是裁剪部分。

关于这个主题,REST API documentation for convert

Crop and Resize: we strongly recommend against combining a resize (specifying width or height) with the crop functionality, as it has indeterminant effects depending on whether the crop is applied before or after the image is resized.

我开始质疑自己为什么要使用这项服务。

看来,除非 Filepicker 修复这些问题,否则我将被迫不允许用户裁剪图像,或者仅在我的 store 操作之后才进行 convert (已经裁剪了图像)完成。这意味着我无法并行保存完整尺寸和缩略图。

最佳答案

我们今天进行了一次部署,解决了这个问题:当人们第一次使用我们的裁剪工具裁剪图像,然后尝试获取该 url 并将其传递到转换方法时,会收到错误。现在,如果您将 url 传递到已定向到转换端点的转换方法中,则将解析裁剪参数,并且将按照指定的任何方式裁剪和转换生成的图像。

我们还添加了一个crop_first参数,可以将其设置为true。如果此参数设置为 true,则裁剪将在发生任何其他转换(调整大小、旋转等)之前进行。

关于javascript - 使用裁剪 UI 进行挑选调用后,来自 filepicker.io JS API v2 转换调用的错误 142,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31228641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com