如何使用ajax上传大文件?

时间:2013-10-15 13:55:56

标签: php codeigniter ziparchive

function zip()
{



    $zip = new ZipArchive;



    $res = $zip->open($_FILES['file']['tmp_name']);
    if ($res) {




        for( $i = 0; $i <= 2; $i++ ){ 
            $stat = $zip->statIndex( $i ); 

                $legitImage=explode('.',$stat['name']);
                print_r($legitImage);
                echo $legitImage[1];
                echo $legitImage[0];
                if($legitImage[1]=='png' && $legitImage[0] == 'Isometric_'.$i)
                {
                    echo "It's an image";
                    //do your operations

                }


            }

        echo 'Not Valid Form,'.$zip->numFiles;



    }
    $zip->close();

}

您好,

在上面的代码中,我尝试了两个压缩文件,一个包含9.3 mB数据,另一个包含1.20 mb。但是对于1.20mb文件,代码按照预期的方式运行,但对于较大的代码,它会显示错误,因为找不到文件。我们正在使用我们的主机作为服务,所以我不能从哪里获得我的帖子最大尺寸,这是它得到错误的原因。而且我猜set_time_limit是原因。因为要上传超过9 MB的文件,可能需要超过大小限制时间。

任何人都可以猜到我哪里出错了。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

使用FileReader并将文件分块,逐个上传(使用AJAX),然后重新组装服务器上的文件。

Google for implementation / examples。

答案 1 :(得分:0)

由于尺寸

,它可能无法进入服务器

http://www.php.net/manual/en/features.file-upload.common-pitfalls.php

 The MAX_FILE_SIZE item cannot specify a file size greater than the file size that has been set in the upload_max_filesize in the php.ini file. The default is 2 megabytes.

If a memory limit is enabled, a larger memory_limit may be needed. Make sure you set memory_limit large enough.

If max_execution_time is set too small, script execution may be exceeded by the value. Make sure you set max_execution_time large enough