JQuery Flickr文件上传无法正常工作

时间:2008-09-29 12:42:19

标签: jquery forms flickr

我正在尝试使用JQuery将文件上传到Flickr。我有一个表单(如果我不使用JQuery,它可以工作)我使用Form Plugin提交。我的代码如下:

<html>

<head>
<title>Test Upload</title>
<script type="text/javascript" src="jquery-1.2.6.js"></script>
<script type="text/javascript" src="jquery.form.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $('#myForm').bind('submit', function() {
        $(this).ajaxSubmit({
            dataType: 'xml',
            success:  processXml
        });
        return false; // <-- important!
    });
});

function processXml(responseXML) {
    var message = $('message', responseXML).text();
    document.getElementById('output').innerHTML = message;
}

</script>

</head>

<body>

<form id="myForm" method="post" action="http://api.flickr.com/services/upload/" enctype="multipart/form-data">
<input type="file" name="photo" id="photo"/>
<input type="text" name="api_key" id="api_key" value="..snip.."/>
<input type="text" name="auth_token" id="auth_token" value="..snip.."/>
<input type="text" name="api_sig" id="api_sig" value="..snip.."/>
<input type="submit" value="Upload"/>
</form>
<div id="output">AJAX response will replace this content.</div>
</body>

</html>

问题是我得到以下文字作为回应:

<rsp stat="fail">

    <err code="100" msg="Invalid API Key (Key not found)" />

</rsp>

即使文件上传没有问题。这意味着我的div没有更新,因为它没有运行成功函数。任何人都有任何想法。

由于

5 个答案:

答案 0 :(得分:2)

请参阅另一个关于使用AJAX上传文件的帖子:

How can I upload files asynchronously?

我从来没有尝试过,但似乎你无法得到服务器响应(不管怎么说都不容易)

答案 1 :(得分:0)

您将无法通过这种方式通过AJAX上传文件。

由于JavaScript的安全限制,无法使用纯AJAX文件上传系统。

答案 2 :(得分:0)

我看到你正在使用 ajaxSubmit 。这是jQuery Form Plugin,对吗?该问题可能与此有关吗?

您是否尝试过使用jQuery.post

答案 3 :(得分:0)

ajax不适用于跨域。 您无法使用ajax从一个域向另一个域提交表单。

答案 4 :(得分:0)

您可以做的是 - 在您的域上使用proxy.php文件。使用ajax将表单提交给proxy.php。 proxy.php中的代码将使用CURL将表单提交给flickr。你将在php.net或许多其他网站上获得CURL代码