0

我正在尝试使用 flex 将图像上传到 imageshack,但不断获取

<links>
<error id="wrong_file_type">Wrong file type detected for file IMG_00000009.jpg:application/octet-stream</error>
</links>

我试过改变 mimetype,但似乎没有什么能做到这一点。

这是我的方法的样子:

protected function onUpload(event:MouseEvent):void
{
    trace('uploading')
    fileRef.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, completeHandler);
    var params:URLVariables = new URLVariables();
    params.key = key;
    var request:URLRequest = new URLRequest("http://www.imageshack.us/upload_api.php");
    request.method = URLRequestMethod.POST;
    request.data = params;
    fileRef.upload(request, "fileupload");
}

谁能在这里帮我一把,告诉我我做错了什么?我环顾了谷歌和这里,但在他的动作脚本中找不到任何解决方法。

提前致谢

4

2 回答 2

1

多部分表单上传有多种内容类型。一个用于主要提交,一个用于每个部分。使用 FileReference.upload() 方法时,您不能设置其中任何一个。可悲的是,您可能必须使用 imageshack 想要的内容类型构建自己的多部分表单上传。您可以使用 URLLoader 类执行此操作,但它并不漂亮。

这是一个可以帮助您入门的课程(可能您无需修改​​即可使用它):http ://code.google.com/p/in-spirit/source/browse/#svn%2Ftrunk%2Fprojects%2FMultipartURLLoader%2Fru%2Finspirit

您也可以要求 imageshack 代表各地的闪存开发人员接受应用程序/八位字节流的图像。

您还可以在http://bugbase.adobe.com提交错误/增强请求(该功能被记录为以这种方式工作,因此它更像是增强请求)。

于 2011-09-11T20:58:47.490 回答
0

好吧,首先,您没有监听任何可能发生的错误(可能是这种情况),如果您想调试,您应该使用 chrome 中的开发人员面板或 firefox 中的 firebug 来查看 http要求。

通过快速浏览 API,我看到了这个花絮:

支持的参数有:

  • 上传文件; (input type="file") - 图片或视频文件。除非指定了 url 参数,否则为必填项。
  • 文件上传;(input type="file") - 视频默认帧图片。可选,仅用于视频上传。上传视频时,您可以提供一个默认帧,该帧将在视频停止时显示。此图像的尺寸应与视频文件的尺寸相同,以避免屏幕上出现伪影。
  • 网址;该参数表示使用transload方式而不是upload optsize;如果上传/转载图像,则以 WxH 形式调整图像的大小选项。对视频上传没有影响。
  • 钢筋;开发人员可以告诉 ImageShack 离开/删除 ImageShack 生成的缩略图上的信息栏。如果您将此参数提供为 yes 或 1,则生成的 thumbmail 将没有信息栏。对视频上传标签没有影响;要添加到您的视频/图像的标签的逗号分隔列表。例如家庭,图片。选修的
  • 上市; 您的视频/图片的公共/私人标记。yes 表示公共(默认),no 表示私有。选修的
  • 曲奇饼; 注册码,可选。
  • 一个_用户名;用户名,可选。
  • a_password; 密码,可选。
  • 钥匙; 您的开发者密钥。强制的。

我相信您缺少urlorfileupload参数以使其正常工作。

于 2011-08-29T07:02:26.290 回答