我正在研究如何使用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;);
答案 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"]);