我想用PHP上传文件。上传PHP中的文件
我的文件夹结构如下:
我有一个在我的根htdocs文件夹名为schemas
目录。在这个文件夹中,我想为每个用户创建一个新文件夹;在这个文件夹中,我将存储用户特定的文件。
现在,我的代码是不完整的(不检查文件夹/文件是否已经存在,可能会出错),但我只是想让基础知识工作。
<?php
if ($_FILES ["bestand"] ["error"] > 0) {
//for error messages: see http://php.net/manual/en/features.fileupload.errors.php
switch ($_FILES ["bestand"] ["error"]) {
case 1 :
$msg = "U mag maximaal 2MB opladen.";
break;
default :
$msg = "Sorry, uw upload kon niet worden verwerkt.";
}
} else {
//check MIME TYPE - http://php.net/manual/en/function.finfo-open.php
$allowedtypes = array ("application/pdf");
$filename = $_FILES ["bestand"] ["tmp_name"];
$finfo = new finfo (FILEINFO_MIME_TYPE);
$fileinfo = $finfo->file ($filename);
if (in_array ($fileinfo, $allowedtypes)) {
//move uploaded file
$dir = "schemas";
chdir("schemas");
$user_folder = str_replace(" ", "", $_POST['schema']);
mkdir($user_folder, 0777);
// echo getcwd();
// closedir($open);
$folder = "/schemas/" . $user_folder . "/" . $_FILES ["bestand"] ["name"];
echo $folder;
echo $user_folder;
if (move_uploaded_file ($_FILES ["bestand"] ["tmp_name"], $folder)) {
$msg = "Uw schema is succesvol geupload!";
} else {
$msg = "Upload mislukt.";
}
} else {
$msg = "U kan enkel een pdf uploaden.";
}
}
echo $msg . "<br />";
?>
当我尝试,我得到以下警告:
Warning: move_uploaded_file(/schemas/loesp/loopschema-0-tot-5-kilometer.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in /Applications/MAMP/htdocs/Sportjefit2/uploadenfile.php on line 30
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/Applications/MAMP/tmp/php/phpMsxxsu' to '/schemas/loesp/loopschema-0-tot-5-kilometer.pdf' in /Applications/MAMP/htdocs/Sportjefit2/uploadenfile.php on line 30
脚本不创建的文件夹(在这种情况下loesp
),但似乎并没有上传或移动实际的文件。我很难过。
*(参考)* http://de2.php.net/manual /en/features.file-upload.php – Gordon 2011-05-11 08:23:14
尝试使用完整路径而不是相对路径,看看是否有帮助。另外,从阅读手册看来,destinatin应该包含目标文件名称,而不仅仅是文件夹名称。 – Grim 2011-05-11 08:26:46