【问题标题】:Codeigniter setting upload path to tmp folderCodeigniter 设置上传路径到 tmp 文件夹
【发布时间】:2012-10-13 18:31:21
【问题描述】:

我正在将我的文件上传到 Amazon S3,并且不需要将它们存储在本地。我不想使用 unlink() 或 cron 作业,而是想将文件添加到 tmp 文件夹并从那里将它们发送到 Amazon S3。我尝试在配置选项中指定路径:

$tmp = ini_get('upload_tmp_dir');
$config['upload_path'] = $tmp;

我收到上传错误:

The upload destination folder does not appear to be writable.

我使我的 tmp 文件夹可写,但仍然出现错误。有谁知道如何使用 CI 上传库仅上传到 tmp 文件夹?恐怕我可能不得不修改核心上传库删除所有上传路径功能。

【问题讨论】:

  • 为什么不能直接使用 $_FILES['fieldname'][tmp_name] ?
  • 获取文件名。我需要指定 tmp 文件夹。在文件路径中使用/tmp/ 似乎有效
  • 你可以写服务器的tmp文件夹。您将在 $_FILES['fieldname'][tmp_name] 中获得 tmp 文件路径,因此当您上传任何文件时,它会存储到 tmp 文件夹中,您将使用 $_FILES['fieldname'][tmp_name] 获得该路径,您可以使用它将文件上传到 Amzaon S3 的路径
  • /tmp/ 在路径中似乎有效。我可以使用$this->upload->file_name 获取文件名并给我 tmp_name。

标签: php codeigniter file-upload


【解决方案1】:

ini_get() 是 php.ini 的表示。

如果你打开php.ini你会发现upload_tmp_dir被设置为null

如果您是echo ini_get('upload_tmp_dir');,您可能会注意到它不会 - 那是因为它是null。这意味着您将一个空字符串输入$config['upload_path'],CodeIgniter 将默认选择您的文档根目录。

请改用sys_get_temp_dir() 或简单的'/tmp'

【讨论】:

  • 我知道这是旧的......但它帮助我指出了正确的方向。所以谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
  • 2014-02-13
  • 1970-01-01
  • 2011-04-08
  • 2017-12-03
  • 1970-01-01
相关资源
最近更新 更多