如何在不更改memory_limit大小的情况下上传大文件?

时间:2014-03-18 10:09:29

标签: php file-upload ftp

我正在尝试通过ftp代码上传文件,但问题是我无法通过以下代码上传超过50MB文件。 memory_limit is 64M,这就是我尝试通过ftp代码执行此操作的原因。任何解决方案如何上传大尺寸文件而不更改memory_limit

if(isset($_POST['submit'])){

        $title          =   sql_replace($_POST['title']);
        $desc           =   sql_replace($_POST['desc']);

        if(!$title)
        { $errors .= "File Title is Missing !<br>"; }

        if(!$desc)
        { $errors .= "Description is Missing !<br>"; }

        if(!$errors){

        /************UPLOAD WITH FTP***********/


        // set up basic connection
        $ftp_server     =   'IP here...';
        $ftp_user_name  =   '.....';
        $ftp_user_pass  =   '*******';


        $conn_id = ftp_connect($ftp_server);

        // login with username and password
        $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

        // upload a file

        $file = $_FILES['file']['name'];
        $tmp = $_FILES['file']['tmp_name'];

                if (ftp_put($conn_id, $file, $tmp, FTP_ASCII)) {
                 echo "successfully uploaded $file\n";
                } else {
                 echo "There was a problem while uploading $file\n";
                 $errors .=  "Invalid file<br>";
                }
                // close the connection
                ftp_close($conn_id);

        }
 } 

1 个答案:

答案 0 :(得分:2)

memory-limit参数与文件上传几乎没有关系。

检查php.ini文件中的参数upload_max_filesize = 50M

您必须增加此限制,请尝试upload_max_filesize = 60M,因为有效负载中总会有一些其他内容超出您的实际文件。

替代建议:

是的我相信你可以使用ini_set()函数设置它,所以你可以从这样的代码中做到这一点:

ini_set('upload_max_filesize', '60M');