copy()函数的第二个参数不能是move_uploaded_file中的目录

时间:2014-04-29 22:20:55

标签: php file-upload

我正在研究如何使用php上传PDF,我遇到的问题是我无法找到我的错误。

我有一个输入类型="文件"像这样:

<label class="line">
            <span> Choose a PDF: </span>
            <input type="file"  name="pdf" size="60" />
 </label>

然后我有下面的代码,创建一个存储pdf的目录,如果该目录还没有存在。

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

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

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

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

         $mypdf = $_FILES['pdf'];
        $ext = substr($img['name'],-3);
        $f['pdf'] = $year.'/'.$month.'/'.$f['url'].'.'.$ext;
        move_uploaded_file($mypdf['tmp_name'], $folder.$year.'/'.$month.'/');

    }

创建目录的mkdir工作正常,但pdf没有上传。

我得到了这个错误:

警告:move_uploaded_file(): copy()函数的第二个参数不能是move_uploaded_file($ mypdf [&#39; tmp_name&#39;],$ folder。$ year)中的目录。 &#39; /&#39; $本月&#39; /&#39);

警告:move_uploaded_file():无法移动&#39; F:\ Xampp \ tmp \ php1BD6.tmp&#39;到&#39; ../ uploads / pdfs2014 / 04 /&#39;在move_uploaded_file($ mypdf [&#39; tmp_name&#39;],$ folder。$ year。&#39; /&#39;。$ month。&#39; /&#39;);

1 个答案:

答案 0 :(得分:1)

您还需要为move_uploaded_files函数指定一个文件名,因此它知道保存文件(目录)的位置以及文件名。

move_uploaded_file($mypdf['tmp_name'], $folder.$year.'/'.$month.'/'."my_newly_uploaded_file.pdf");

或者如果你想保留原始文件名

move_uploaded_file($mypdf['tmp_name'], $folder.$year.'/'.$month.'/'.$mypdf["name"]);