这是个开源的php代码,用于文件上传的时候返回给前台页面json格式数据,本人是搞java的不懂php代码,但并不需要了解具体的php代码,只需要知道这个php文件返回的数据内容即可。
本人添加了两句代码用于打印php生成的json数据: file_put_contents('json.txt',$json,FILE_APPEND); 
file_put_contents('content.txt',$content,FILE_APPEND); 
但经过测试觉得似乎这个数据并不完整,可能还有别的地方有数据json数据,但不知道究竟哪里有?
谁能帮我看看这个php代码中哪里还有返回json数据的地方?如何打印输出具体内容?该文件的代码网址是https://github.com/blueimp/jQuery-File-Upload/blob/master/server/php/UploadHandler.phpphp

解决方案 »

  1.   

    你贴的两句代码没有问题,不会导致数据输出不完整。如果不完整只能是$json和$content没有得到完整的内容。
    jquery提供的这个UploadHandler比较复杂,它考虑了很多情况。因此服务器端不需要使用它这个。使用php本身的接收函数即可完成接收并返回相关信息。
      

  2.   


    <?php/*
     * $_FILES["file"]["type"] - 被上传文件的类型
     * $_FILES["file"]["size"] - 被上传文件的大小,以字节计
     * $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
     * $_FILES["file"]["error"] - 由文件上传导致的错误代码
     *//**
     * 
     * @param type $newFileName 新文件名,可以包括完整路径。
     * @return int
     */
    function saveFile($newFileName) {
        if ($_FILES["file"]["error"] > 0) {
            return -1;
        }
        move_uploaded_file($_FILES["file"]["tmp_name"], $newFileName);
        return 0;
    }这样就可以了
      

  3.   


    我主要是想要前台页面的上传文件ui,包括可以批量拖放文件等,这个前台页面通过ajax接收php文件返回的json数据来显示文件上传进度条,和上传结果等信息,我是不需要这个php代码,因为我用的是java,但是只有这个php版本的能够demo能够很完整地运行,我只是想知道这个php代码返回的jsdon数据究竟是什么格式的,包含哪些内容。现在看来,这个前台页面也十分复杂,完全看不懂,引入了无数个js文件,头疼啊
      

  4.   

    你的服务器端是不是JSP?
    php代码返回的json数据,这个倒是好办,我可以给你弄明白。上传进度,php也可以通过一个扩展来返回到前端。总而言之,服务器端好办。
    但是前端不好办。特别是批量拖放文件。目前各大网站,qq、163等等的批量上传,都是通过另外安装一个上传控件来实现的,应该是个浏览器的activeX。建议只实现ajax单个上传,放弃批量上传。至于拖放,这个功能也没有多大意思,还得跳出浏览器,在浏览器里面选择也不错。
      

  5.   

    我不知道你说的demo是哪个demo。
    http://blueimp.github.io/jQuery-File-Upload/
    这个demo,是一个页面里面有多个单个ajax上传。如果这种批量符合你的要求,那可以不放弃批量上传。
      

  6.   


    这个东东完全符合要求,但是搞不懂上传文件成功之后要返回什么数据给前台,demo的版本倒是很多(https://github.com/blueimp/jQuery-File-Upload/wiki),连java的也有很多个,但是只有php这个版本比较新,其他很多都出错
      

  7.   


    能上传的,程序下载到本地的运行就能上传,网上那个demo不能上传是因为服务器限制了上传。
    我现在已经找到文档中表名了json文件的数据格式要求了,不需要在研究这个php文件了
      

  8.   


    有没有办法知道整个php文件返回的所有内容?
      

  9.   


    请教一下这段如何打印这段代码返回的内容?
            return $this->generate_response(
                array($this->options['param_name'] => $files),
                $print_response
            );
      

  10.   

            $s = $this->generate_response(
                array($this->options['param_name'] => $files),
                $print_response
            );
            print_r($s);
            return $s;
      

  11.   


    这句话出错
    print_r($s);
    我改为了
    file_put_contents('s.txt',$s,FILE_APPEND ); 
    但是打印结果为Array,这样是对的吗?
      

  12.   

    file_put_contents('s.txt', print_r($s, 1), FILE_APPEND );