设置安全文件上传目的地php

时间:2013-11-24 12:23:06

标签: php file-upload

我正在使用以下php文件上传类以相对安全性上传我的文件。我稍后会添加更多安全功能:

http://www.verot.net/php_class_upload.htm

我的问题是,我想将我的文件上传到我已经预先创建的文件夹www.mysite.com/upload准备好接收文件。

唯一的问题是我不知道如何正确设置它。我已经确认表格正在提交。这是我试图使用的:

$handle = new class_upload($_FILES['image_upload']);
  if ($handle->uploaded) {
      $handle->file_new_name_body   = 'image_resized';
      $handle->image_resize         = true;
      $handle->image_x              = 100;
      $handle->image_ratio_y        = true;
      $handle->process('/home/user/upload');
      if ($handle->processed) {
          echo 'image resized';
          $handle->clean();
      } else {
          echo 'error : ' . $handle->error;
      }
  }

我收到错误:

  

“无法创建目标目录。无法继续进行处理。”

我为$handle->process('/home/user/upload');设置了什么,以便将其上传到正确的目录?

2 个答案:

答案 0 :(得分:3)

错误消息表明您的网络服务器正在运行的用户可能没有创建目录的权限...因此,这意味着您创建的目录未被定位。

你需要这个文件夹的完整路径...获得它的一种方法是使用:

$handle->process($_SERVER['DOCUMENT_ROOT'] . '/upload/');

我会尽量避免这种情况,因为$ _SERVER变量可能会被篡改或一般不准确。

imho的更好方法是:

$handle->process(realpath(dirname(__FILE__) . '/upload/');

确保您创建的文件夹具有Web服务器用户/组的可写权限。

答案 1 :(得分:1)

我怀疑,您正在寻找的是$handle->process(dirname(__FILE__).'/home');,假设调用脚本直接位于Web根文件夹中。