swfupload:如何从upload.php脚本解析返回的数据?

时间:2011-10-28 00:46:28

标签: php javascript jquery swfupload

用Google搜索了大约1个小时,仍然找不到如何执行这个简单的任务!

upload.php最终得到:

    echo "FILEID:" . $randomid; // Return the file id to the script

现在尝试获取此FILEID:

          function uploadSuccess(serverData) {
        alert(serverData);
      }

提醒[对象对象]。文档根本没有帮助。没有可用的例子。

请帮忙!

3 个答案:

答案 0 :(得分:0)

嗯,首先,我认为你的uploadSuccess输入参数错误。 Documentation表示:uploadSuccess(文件对象,服务器数据,收到的响应)是正确的签名。

所以对于初学者来说,你需要在你的成功回调上抛出一些额外的参数:)其次,serverData是你的服务器输出。在您的示例中,看起来响应将是{“FILEID”:“somerandomid”}(我假设它以JSON的形式返回,尽管这可能是误导的假设)

在任何情况下,要访问随机创建的ID,您只需要执行

function uploadSuccess(fileObject, serverData, response){
    alert(serverData.FILEID); 
 }

此外,您应该使用Firebug,它是Firefox的插件。它将允许您在回调函数上放置一个断点,并让您查询serverData以查看完全其中的内容。

答案 1 :(得分:0)

解决了!这要简单得多。为什么我总是认为复杂? function uploadSuccess(fileObject,serverData,response){alert(serverData); }

答案 2 :(得分:0)

我已将JSON与SWFUpload一起使用。 读取FILEID(@Eric建议)的问题是SWFUpload从上传的文件返回文件名(例如,客户端已将“test.txt”上传到服务器,这是它返回的文件的名称)。没关系,但是如果你有一个重命名文件的PHP脚本(为了避免替换),那么如果这个文件存在,那么服务器上的文件名不是“test.txt”,而是“test(2).txt”。 / p>

uploadSuccess中,我使用过:

.on('uploadSuccess', function(event, file, serverData){
    var responseData = jQuery.parseJSON(serverData);
    var upload_url_tmp = responseData["name"];
    [...]

在服务器端,我使用过:

$data = array('name' => $file);
    echo json_encode($data);

请注意$ file var是Server上保存的文件的名称(重命名后)。 使用PHP 5.4.9和SWFUpload 2.2.0.1