使用PHP将大文件上传到FTP

问题描述 投票:2回答:2

我正在尝试使用php将大文件上传到ftp服务器。 我可以上传小文件,但是在上传大文件时遇到问题。 我查了一下,发现需要设置upload_max_filesize和post_max_size,将ftp设置为被动模式,并将时间限制设置为从不。 我没有设置时间限制,现在我没有返回任何错误,但是也没有上传文件。 如果查看底部的if (!$upload) {行,它应该回显某些内容,但事实并非如此。 更重要的是,它不起作用。 关于出什么问题或者我需要做些什么来做这项工作的任何见解? 谢谢!

ini_set('upload_max_filesize', '50M');   
ini_set('post_max_size', '50M');  

$conn_id = ftp_connect($ftp_server);

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

// check connection
if ((!$conn_id) || (!$login_result)) {
        echo "FTP connection has failed!";
        echo "Attempted to connect to $ftp_server for user $ftp_user_name";
        exit;
}

 // turn passive mode on
ftp_pasv($conn_id, true);

if($_FILES['upload_file']['name']!=''){
    $source_file = $_FILES['upload_file']['tmp_name'];
    $destination_file = $_FILES['upload_file']['name']; 

    // upload the file
    $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

    // check upload status
    if (!$upload) {
            echo "FTP upload has failed!<br />";
        } else {
            echo "Uploaded $source_file to $ftp_server as $destination_file<br />";
        }       
}

UPDATE

我发现我无法从php页面设置upload_max_filesize值; 另外,我似乎无法使.htaccess正常工作:如果我有.htaccess文件,它将导致HTTP错误500。而且,我无权访问php.ini。

我还能如何更改upload_max_filesize值?

更多信息

我的网络管理员告诉我,我在基于IIS Windows的系统上,所以.htaccess文件不起作用。 有没有一种方法可以影响web.config的文件上传大小?

php file-upload ftp
2个回答
2
投票

从此站点: http : //www.php.net/manual/zh/ini.php

'upload_max_filesize'和'post_max_size'

属于PHP_INI_PERDIR类型

这意味着可以在“ php.ini,.htaccess或httpd.conf”中设置条目。 因此,您无法在脚本中进行设置。

-编辑-

一个类似的问题: 在PHP上更改upload_max_filesize

-编辑2-

就个人而言,我想做同样的事情(通过ftp上传大文件)并最终编写一个Java应用程序。 对于处理大文件,php并不是真正的最佳方法。 Web浏览器并非如此。 因此,对于处理大文件,我建议考虑其他方法:(java,swf,javascript,...)

有空的时候我想尝试一下的东西是http://nodejs.org/


2
投票

正如@AngeDeLaMort正确指出的那样,您不能使用速记符号在PHP.ini之外设置配置值。

参考: 在PHP上更改upload_max_filesize

尝试这样做。

在您的根目录中创建.htaccess文件,并添加以下内容。

php_value upload_max_filesize 50M
php_value post_max_size 50M
php_value max_execution_time 200
php_value max_input_time 200
© www.soinside.com 2019 - 2024. All rights reserved.