загрузка файла — ошибка при загрузке изображения в Stack Overflow

В приведенном ниже коде я пытаюсь загрузить изображение, но оно показывает следующую ошибку.

Предупреждение: 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.';
}

}

-1

Решение

Прочитайте ваше сообщение об ошибке.

Вы пытаетесь сохранить файл в этом месте

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;
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]