我被困在一个地方,我有一个文件上传php文件,但是当我要上传图像时,我有一个错误,称为:
“警告:move_uploaded_file():无法打开流:没有此类文件或目录。”和
“警告:move_uploaded_file():无法将'C:\ wamp \ tmp \ php7E6D.tmp'移动到'site / images / UBI30_Giveaway_box_CARDS_1.jpg'。”
我的上传php看起来像这样:
//Image datas
$target_dir = "site/images/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Submint button pressed?
if(isset($_POST['submit'])){
$nev=$_POST['nev'];
$about=$_POST['about'];
$image=$_FILES["fileToUpload"]["name"];
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
// Does it image?
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
//Recently the image is uploaded?
if (file_exists($target_file)) {
echo "Sajnáljuk, ez már egy feltöltött fájl..";
$uploadOk = 0;
}
//If everything okay, upload.
if ($uploadOk == 0) {
echo "Sajnáljuk a kép nem került feltöltésre..";
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "A ". basename( $_FILES["fileToUpload"]["name"]). " feltöltve.";
} else {
echo "Sajnáljuk, hiba történt a kép feltöltése közben.";
}
}
}
// Upload datas to db.
$stmt = $db->prepare("INSERT INTO `jelolt`(`name`, `about`, `image`) VALUES ('$nev','$about','$image')");
$stmt->execute();
// A lekérdezés helyes futásának ellenörzése.
if (!$stmt) {
print_r($db->errorInfo());
}
我希望你们能比我聪明,我只是在3个小时前没有发现我的bug。
使用
$target_dir = getcwd();
进行UPDATE会修改此开始工作,但没有放入正确的文件夹,并且如果更改url也会遇到相同的问题。我需要在getcwd()之后附加/ views / site / image url,但实际上对我来说不起作用:$target_dir = getcwd()."views/site/image";
最佳答案
getcwd()
返回您当前的工作目录。如果将v iews/site/image
添加到其中,则将获得页面所在的文件夹+所需的路径。您还需要在末尾加上斜杠,例如views/site/image
。如果您的页面不在根文件夹中,并且可以安全地假定为当前情况(例如,这是一个名为foo/bar
的页面),那么将尝试将您的文件上传到foo
文件夹中,但是,您的views
文件夹可能位于您的Web根目录中。因此,您需要定义与根目录相比的位置,如下所示:dirname(__FILE__)."views/site/image/".$yourfilename
。确保您具有路径中所有文件夹的必要特权。