【问题标题】:FTP file upload via webpage - Why won't it work for larger files?通过网页上传 FTP 文件 - 为什么它不适用于较大的文件?
【发布时间】:2011-06-03 10:34:23
【问题描述】:

目前上传大文件的问题一直困扰着我,所以我希望有人能帮助解决这个问题!

我有这个上传脚本可以完美地处理小文件,但是当我尝试更大的文件时,我收到一条错误消息“文件名不能为空”,我觉得这很令人困惑。

上传到第三方 ftp 主机。

这是脚本原样:-

    $file = $_FILES['ufile']['tmp_name'];
    $remote_file = $_FILES['ufile']['name'];

    $conn_id = ftp_connect("www.ftphostinguk.com");
    $ftp_user_name = "****";
    $ftp_user_pass = "***********";

    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

    if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {
      echo "successfully uploaded $file\n";
    } else {
     echo "There was a problem while uploading $file\n";
    }

    ftp_close($conn_id);

我认为最让我困惑的是为什么它适用于小文件而不适用于大文件?

提前致谢。

编辑添加:当我使用“echo”来显示文件名时,我收到较大文件的空白响应。 我想知道我是否误解了以这种方式上传文件的基本过程?我假设临时文件是上传到ftp服务器的,但是文件是否有可能先上传到网络服务器?

【问题讨论】:

  • php.ini 中的 upload_max_filesize 值是多少?
  • @Pekka - 测试文件刚刚超过 10m,最终可能达到 200m。 @etbal 我无权访问 php.ini。我最初的方法是尝试将文件上传到网络主机,但它们有上传大小限制,所以我用第三方 ftp 主机创建了一个帐户

标签: php ftp


【解决方案1】:

您的 PHP 脚本很可能会超时,请尝试将这些添加到页面顶部并调整设置(300 秒是 5 分钟):

ini_set('upload_max_filesize', '10M');  
ini_set('post_max_size', '10M');  
ini_set('max_input_time', 300);  
ini_set('max_execution_time', 300); 

【讨论】:

  • 嗨,恐怕这对我不起作用。我已将设置更改为 30m,超时延迟为 10000
  • 主机服务器是否有文件大小限制,是否有足够的空间?
  • 您是指我上传文件的主机?没有限制,它是一个新的空帐户
  • 可能是因为权限的关系,需要直接编辑php.ini文件,尝试这样做,然后重新编译。
  • 遗憾的是我无法访问此内容。
【解决方案2】:

这是一个常见问题,因为 PHP 不接受上传的大文件 ($_FILES)

您可以在 php.ini 中更改行为:

ini_set('max_input_time','');
ini_set('upload_max_filesize', '');  
ini_set('post_max_size', '');  

【讨论】:

  • 您好,感谢您的回复,看起来您只是慢了 2 秒 :)
【解决方案3】:

如果我访问 php.ini,我认为所提供的答案可能会解决我的问题,不幸的是我没有,而且从我今天的研究看来,我的问题在于 webhosts 文件限制。

所以为了解决我的问题,我选择了不同的攻击角度来攻击它。我创建了一个直接登录到 ftphost 基于 Web 的界面的表单,即 net2ftp 安装。它不是我想要的解决方案,但除了更改虚拟主机之外,它似乎是唯一可行的解​​决方案。 再次感谢这里知识渊博的人们的意见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 2012-04-26
    • 2013-03-24
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    相关资源
    最近更新 更多