【问题标题】:PHP file upload issue on SUSESUSE 上的 PHP 文件上传问题
【发布时间】:2012-05-28 20:49:57
【问题描述】:

我在 SLES 11 SP2 上使用 Apache/PHP 5.3 上传文件时遇到了一个奇怪的问题 当我尝试上传文件时,PHP 只选择文件的原始名称 ($_FILES['name']),而不是我需要的所有其他变量。

我已经检查并仔细检查了我的php.ini 上传最大文件、设置最大大小、启用文件上传等。

有人知道发生了什么吗?

这是我用来测试它的脚本:

<?php
if(isset($_FILES)) {
    var_dump($_FILES);
}
?>
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="/" method="POST">
    <!-- MAX_FILE_SIZE must precede the file input field -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Name of input element determines name in $_FILES array -->
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

这是我收到的:

array(1) { ["userfile"]=> array(1) { ["name"]=> string(8) "test.txt" } }

【问题讨论】:

  • 我可以合理地建议您重新启动服务器并重试。
  • 那么请查看Apache的错误日志。
  • 现在我无法访问服务器。一旦获得访问权限,我将检查日志。有什么特别要找的吗?
  • 我有完全相同的问题:stackoverflow.com/questions/10908936/…。您的机器是否是 AWS 中的标准 AMI?

标签: php apache file-upload suse


【解决方案1】:

我遇到了 $_FILES 的问题。它没有上传任何文件。

我将 php 组件从 5.3.8-0.19.6 升级到 5.3.8-0.33.2 并且工作...

See this post

【讨论】:

    【解决方案2】:

    将上传的文件写入 tmp 目录可能会出现问题。 upload_tmp_dirphpinfo() 中说什么?

    编辑:

    我看到upload_tmp_dir 没有价值。它可能默认为 /tmp,但我会在 php.ini 中将其显式设置为 /tmp 并检查您是否已正确设置权限。将 error_reporting 设置为 On 并同时查看您的 Apache 日志将有助于故障排除。由于您没有服务器访问权限,您可以直接在您的 php 脚本中尝试:

    ini_set('upload_tmp_dir', '/tmp')
    error_reporting(E_ALL);
    ini_set('display_errors', '1');
    

    【讨论】:

    • upload_tmp_dir 说 '/tmp' 并且文件夹在那里。这是 phpinfo 173.14.125.3/sourcefirst/php_info.php 的链接
    • 这是我打印 $_FILE 变量时得到的输出,我还添加了您发送给我的代码 Array ( [uploaded_cv] => Array ( [name] => changes11.doc ) )
    【解决方案3】:

    我们在 SLES 11 SP2 中的 PHP 上传遇到了同样的问题。在我们的例子中,/tmp 文件夹的限制是最大的。

    试试df -h 命令看看你是否需要清理一下。

    【讨论】:

      猜你喜欢
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多