我正在尝试实现文件(图片)上传API,此处给出:
Mediafire file Upload
我正在使用来自客户端的此API ,因此该文件只需上传一次,服务器带宽不用于大型文件。通过客户端上传也可以节省时间。
* 我的网络托管服务限制了执行时间和带宽。
截至目前,我已成功能够发送 GET &上述API中提供的 POST 参数,该文件已在我的mediafire帐户上传。但是,由于Same Origin Policy,无法收到回复。
Javascript代码:
var url = "http://www.mediafire.com/api/upload/upload.php?"+"session_token="+getCookie("mSession")+"&action_on_duplicate=keep";
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
{
alert("Uploaded");
}
}
xmlhttp.open("POST", url);
var formData = new FormData();
formData.append("Filedata", document.getElementById("myFile").files[0]);
xmlhttp.send(formData);
一切都很好,但是,由于mediafire api无法提供响应,我无法再访问上传的文件了。但是,如果已知文件名,则有一种解决方法可以访问该文件。 PS:Mediafire保留与本地存储相同的名称,但如果mediafire帐户中存在同名文件,则会更改。
因此可以有 2个解决方案:
我通过添加:
尝试了第二种解决方案xmlhttp.setRequestHeader("x-filename", "foobar1.jpg");
以上代码,但它将表单方法从 POST 更改为 OPTIONS ,并且mediafire帐户中没有操作(文件未上传)。
我做错了什么?有没有其他方法可以控制或至少知道mediafire帐户中上传文件的名称。