【问题标题】:PHP File Copy Permission Error [closed]PHP文件复制权限错误[关闭]
【发布时间】:2012-09-14 10:59:31
【问题描述】:

为什么我在复制文件时会出现权限错误?

我在$candidatefile 上有print_r,这显示了新位置的完整文件路径和正确名称。

当我运行print_r$fields['Resume'] 为空白,但文件仍会上传到缓存

两个文件夹都是777

/home/name/mysite0912/cache/resumes/1ZHiYGZj7J.txt Remuse /home/name/mysite0912/downloads/cv_folder/new-filename-cv.txt 新位置

除此之外,其他一切都很甜蜜

代码部分:

  $candidateuploaddir = _MYSITEDIR . '/downloads/refocus_candidates/';
        $candiatefilename = $fields['RenamedResume'];
        $candidatefile = $candidateuploaddir . $candiatefilename;

        if(empty($fields['Resume']))
        {
                echo 'null';
        }else{
        copy($fields['Resume'],$candiatefilename);
        }

上传功能:

function uploadResume()
{
    if (!isset($_FILES['UploadResume'])) return false;
    $uploaddir = _CACHEDIR.'/resumes/';
    /* create the upload folder if it does not already exist */
    CMS::RecursiveMkdir($uploaddir);
    $extension = CMS::getFileExtension(basename($_FILES['UploadResume']['name']));
    /* keep producing random filenames until we get a unique one */
    while (empty($filename) || CMS::fileExists($uploaddir.$filename)) {
        $filename = CMS::randomString(10).'.'.$extension;
    }

    $uploadfile = $uploaddir . $filename;

    if (move_uploaded_file($_FILES['UploadResume']['tmp_name'], $uploadfile)){

        return $uploadfile;
        //$uploadfile;
    } else {
        return false;
    }
}

在提交线上:

$fields['Resume'] = CMS::either(CMS_Plugin_plugin_jobs_apply::uploadResume(), CMS::getFormData('Resume', false)); //upload resume to temporary location

【问题讨论】:

  • @ColeJohnson 警告:复制(名称)[function.copy]:无法打开流:第 197 行 .php 中的权限被拒绝

标签: php file-upload permissions


【解决方案1】:

所以我们是 ($_FILES) 的 print_r;是否设置了表单的 enctype 以允许上传文件?

在此行之前,添加:

copy($fields['Resume'],$candiatefilename);


file_exists($fields['Resume']) or die('can not copy file '.$fields['Resume'].' because it does not  exist !'); 

// else 
copy($fields['Resume'],$candiatefilename);

【讨论】:

  • Array ( [UploadResume] => Array ( [name] => coverLetter_Aug 16.txt [type] => text/plain [tmp_name] => /tmp/phpYVg6Ny [error] => 0 [size] => 629 ) ) 没死,又报错了。我刚刚添加到最初通过电子邮件发送的代码
猜你喜欢
  • 2017-09-24
  • 2013-02-21
  • 2018-11-12
  • 2013-07-09
  • 1970-01-01
  • 2013-05-15
  • 1970-01-01
  • 2020-11-22
  • 2013-05-30
相关资源
最近更新 更多