我正在尝试使用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");
}
有谁能帮我一把,告诉我我做错了什么?我看了很多谷歌和这里,但找不到他的动作脚本的任何解决方法。
提前致谢
答案 0 :(得分:1)
多部分表单上传有多种内容类型。一个用于主要提交,一个用于每个部分。使用FileReference.upload()方法时,无法设置其中任何一个。遗憾的是,您可能必须使用imageshack想要的内容类型构建自己的多部分表单上载。您可以使用URLLoader类执行此操作,但它并不漂亮。
这是一个应该让你入门的课程(可能你可以不加修改地使用它):http://code.google.com/p/in-spirit/source/browse/#svn%2Ftrunk%2Fprojects%2FMultipartURLLoader%2Fru%2Finspirit
您可能还会代表各地的Flash开发人员要求imageshack接受应用程序/八位字节流。
您还可以在http://bugbase.adobe.com处提交错误/增强请求(此功能已记录为以这种方式工作,因此更多是增强请求)。
答案 1 :(得分:0)
好吧,首先,你不是在听任何可能发生的错误(可能就是这种情况),如果你想调试,你应该使用像chrome中的开发人员面板或firefox中的firebug来看到http请求。
通过快速查看API,我看到了这个小问题:
支持的参数是:
- 文件上传; (输入类型=“文件”) - 图像或视频文件。强制性 除非指定了url参数。
- frmupload; (输入类型=“文件”) - 视频默认帧图片。 可选,仅用于视频上传。上传视频时 你可以提供一个默认帧,当视频出现时将显示 停止。此图像的尺寸应与视频文件的尺寸相同 为了避免屏幕上的人工制品。
- URL;此参数表示使用转换方法 上传optsize;如果图像是,则以WxH格式调整图像的选项 上传/ transloaded。对视频上传没有影响。
- rembar;开发人员可以告诉ImageShack离开/删除 ImageShack生成的缩略图图像上的信息栏。如果你的话 提供此参数为yes或1然后生成的thumbmail将 没有信息栏。对视频上传标签没有影响;一个 以逗号分隔的标记列表,可添加到您的视频/图像中。例如。 家庭,图片。可选的
- 公众;您的视频/图片的公共/私人标记。是的意思 public(默认),no表示私有。可选的
- 饼干;注册码,可选。
- a_username;用户名,可选。
- a_password;密码,可选。
- 键;你的DeveloperKey。强制性的。
我相信您错过了url
或fileupload
参数,以便它发挥作用。