我使用mkdir上传文件无效

时间:2014-05-17 01:50:39

标签: php file-upload upload

我有以下代码上传pdf。

首先我看看pdfs文件夹是否存在,如果不存在,我用mkdir()创建文件夹,然后在创建文件夹时我进行上传。

但我有错误:

  

警告:mkdir():文件存在于 mkdir($folder.'-'.$year.'/'.$month,0755);

然后,由于此错误,我收到其他错误,因为该目录不存在:

  

move_uploaded_file(../ pdfs / -2014 / 05 / Food - FROM-2014-08-12-A-2014-05-16.pdf):无法打开流:没有这样的文件或目录在 $pdf_name = 'Food-'.'-From-'.$date_begin.'-TO-'.$date_end;

你看到错误在哪里?因为它对我来说似乎很好......

if(!empty($_FILES['pdf']['tmp_name'])){

    $folder     = '../pdfs/';
    $year   = date('Y');
    $month  = date('m');

    if(!file_exists($folder.'-'.$year)){
        mkdir($month.'-'.$year,0755);
    }

    if(!file_exists($pasta.'-'.$year.'/'.$month)){
        mkdir($folder.'-'.$year.'/'.$month,0755);
    }   

    $pdf = $_FILES['pdf'];
    $ext = substr($pdf['name'],-3);
    $f['pdf'] = $year.'/'.$month.'/'.$f['level'].'.'.$ext;


    $pdf_name = 'Food-'.'-From-'.$date_begin.'-TO-'.$date_end;
    move_uploaded_file($pdf['tmp_name'], $folder.'-'.$year.'/'.$month.'/'.$pdf_name.'.'.$ext);
}

这是我的代码更新,只有mkdir部分,我收到了错误:

if(!empty($_FILES['pdf']['tmp_name'])){

    $folder = '../pdfs/';   
    $year   = date('Y');
    $month  = date('m');
    if(!file_exists($folder.$year)){
         mkdir($folder.$year,0755);
     }

我有错误: 警告:mkdir():mkdir中没有这样的文件或目录($ folder。$ year,0755)

2 个答案:

答案 0 :(得分:2)

代码中似乎存在许多问题。但我怀疑主要的问题是你说的是

 $folder     = '../pdfs/';

然后想要测试是否有" ../ pdfs / -2014"在

if(!is_dir($folder.'-'.$year)){

试图创造如“#34; ../ pdfs / -2014 / 5"在

    mkdir($folder.'-'.$year.'/'.$month,0755);

文件名中的大多数file systems are sensitive about odd characters。我怀疑

  • 您并不打算使用该名称
  • 文件系统不喜欢您使用前导减号
  • 创建内容

BTW:您可能希望查看recursive parameter on mkdir以在路径中创建目录。它应该减少代码

答案 1 :(得分:0)

试试这个:

if(!empty($_FILES['pdf']['tmp_name'])){

    $folder     = '../pdfs/';
    $year   = date('Y');
    $month  = date('m');

    if(!is_dir($folder.'-'.$year)){
        mkdir($month.'-'.$year,0755);
    }

    if(!is_dir($folder.'-'.$year.'/'.$month)){
        mkdir($folder.'-'.$year.'/'.$month,0755);
    }   

    $pdf = $_FILES['pdf'];
    $ext = substr($pdf['name'],-3);
    $f['pdf'] = $year.'/'.$month.'/'.$f['level'].'.'.$ext;


    $pdf_name = 'Food-'.'-From-'.$date_begin.'-TO-'.$date_end;
    move_uploaded_file($pdf['tmp_name'], $folder.'-'.$year.'/'.$month.'/'.$pdf_name.'.'.$ext);
}