【问题标题】:JQuery Flickr file upload not workingJQuery Flickr文件上传不起作用
【发布时间】:2010-09-13 23:49:33
【问题描述】:

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

<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 没有更新,因为它没有运行成功功能。任何人都有任何想法。

谢谢

【问题讨论】:

  • 我们可以澄清一下吗?您说从未调用过成功函数,但您还说您正在收到响应文本。如果不通过成功调用,您如何获得响应文本?

标签: jquery forms flickr


【解决方案1】:

查看其他关于使用 AJAX 上传文件的主题:

How can I upload files asynchronously?

我从未尝试过,但似乎无法获得服务器响应(无论如何都不容易)

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      我看到您正在使用 ajaxSubmit。那是jQuery Form Plugin,对吧?有没有可能是这个问题?

      您是否尝试过改用jQuery.post

      【讨论】:

        【解决方案4】:

        ajax 不能跨域工作。 您不能使用 ajax 从一个域向另一个域提交表单。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-09-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-14
            相关资源
            最近更新 更多