В приведенном ниже коде я пытаюсь загрузить изображение, но оно показывает следующую ошибку.
Предупреждение: move_uploaded_file (): невозможно переместить ‘D: \ Work \ xampp \ tmp \ php8A66.tmp’ в ‘images \ uploads \ slider \’ 1413996794 _ :: 1.jpeg » в D: \ Work \ xampp \ htdocs \ проект \ aad \ slider.php в строке 35
Я думаю, что проблема в функции с именем move_uploaded_file (); функция php.
Каталог, куда следует сохранить это изображение, доступен в папке проекта.
Я пытаюсь решить эту проблему. Какой шаг я должен предпринять?
if(isset($_POST['upload'])){
$imageName = $_POST['imageName'];
$imageFile = $_FILES['imageFile']['tmp_name'];
$imageSize = $_FILES['imageFile']['size'];
$imageType = $_FILES['imageFile']['type'];
$ipAddress = $_SERVER['REMOTE_ADDR'];
$time = time();
if($imageType == 'image/gif'){
$ext = '.gif';
}elseif($imageType == 'image/png'){
$ext = '.png';
}elseif($imageType == 'image/jpg'){
$ext = '.jpg';
}elseif($imageType == 'image/jpeg'){
$ext = '.jpeg';
}
$imageFileName = $time.'_'.$ipAddress.$ext;
//$dir = "images\uploads\slider\$imageFileName";
$dir = "images\uploads\slider\".$imageFileName;
if($imageName !== ''){
if($imageSize < '200000000'){
if($imageType == 'image/gif' || $imageType == 'image/png' || $imageType == 'image/jpeg' || $imageType == 'image/jpg'){
if(move_uploaded_file($imageFile, $dir)){
$query = "INSERT INTO slider VALUES('', '$imageName', '$imageFileName', '$imageSize', '$dir')";
$mysql_query = mysql_query($query);
if($mysql_query){
$msg = 'Image Uploaded Successfully';
}else{
$msg = 'Image Uploading Failed.';
}
}else{
$msg = 'Error while uploading file, Please try again.';
}
}else{
$msg = 'Image type should be .gif, .png, .jpg or .jpeg.';
}
}else{
$msg = 'Image size is too large.';
}
}else{
$msg = 'Image name cannot be empty.';
}
}
Прочитайте ваше сообщение об ошибке.
Вы пытаетесь сохранить файл в этом месте
images\uploads\slider\'1413996794_::1.jpeg
Есть ли D:\Work\xampp\htdocs\project\aad\images\uploads\slider\
существует в вашем текущем рабочем дереве?
Кроме того, у вас есть '
и 2 :
в вашем имени файла, которые недопустимы в имени файла.
РЕДАКТИРОВАТЬ
Во-первых, вы должны удалить :
с IP-адреса, поэтому они не переносятся в имя файла.
Во-вторых, мне кажется, что у вас есть проблема с '
потому что вы не избежали \
«S.
Попробуй это:
// Remove any instance of ':'
$imageFileName = str_replace(":", "", $imageFileName);
// Set the directory, escaping backslashes
$dir = "images\\uploads\\slider\\" . $imageFileName;
Других решений пока нет …