2015-11-30 3 views
0

Здравствуйте, мне нужно немного помочь с загрузкой изображений на мой сайт, я несколько раз изменил этот скрипт, но я просто не могу заставить его функционировать правильно?Сценарий загрузки изображений неправильно работает

Когда я пытаюсь загрузить какие-либо изображения, сценарий, кажется, сбой, и никакие записи не обновляются, а также не загружаются изображения? Я сделал что-то не так со сценарием?

if(isset($_POST['uploadimage'])){ 
    $user = $_POST['user']; 
    $target_dir = "userimg/"; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]); 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
// Check if image file is a actual image or fake image 

$check = getimagesize($_FILES["fileToUpload"]); 
    if($check !== false) { 
     $uploadOk = 1; 
    } else { 
     $imgerror = 1; 
     $uploadOk = 0; 
    } 

// Check if file already exists 
if (file_exists($target_file)) { 
    $imgerror = 2; 
    $uploadOk = 0; 
} 
// Check file size 
if ($_FILES["fileToUpload"] > 500000) { 
    $imgerror = 3; 
    $uploadOk = 0; 
} 
// Allow certain file formats 
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" 
&& $imageFileType != "gif") { 
    $imgerror = 4; 
    $uploadOk = 0; 
} 
// Check if $uploadOk is set to 0 by an error 
if ($uploadOk == 0) { 

// if everything is ok, try to upload file 
} else { 
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
     $filenameimg = basename($_FILES["fileToUpload"]); 
     mysqli_query($conn, "UPDATE friends_list SET display_img = '$filenameimg' WHERE id = '$user'"); 
     $imgerror = 6; 
    } else { 
     $imgerror = 5; 
    } 
} 
} 
+3

Проконсультируйтесь по следующим ссылкам: http://php.net/manual/en/mysqli.error.php и http://php.net/manual/en/function.error-reporting.php и примените это к своему код. –

+0

Полезно ли использовать инструменты отчетов об ошибках, даже если код работает, если что-то может пойти не так, смогут ли пользователи просматривать ошибки, которые появляются, если я это сделаю? –

+0

Это только для тестирования. и да, они появятся пользователю. Если вы их увидите, так они будут ;-) –

ответ

0

Похоже, вам не хватает пару важных частей здесь, первая часть, которая будет вызывать вопрос вашего basename функции, вы не включая имя файла.

$target_file = $target_dir . basename($_FILES["fileToUpload"]);

Должно быть

$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);

И чтобы получить размер изображения, вы также должны использовать один и тот же процесс:

$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);

Используйте эту идею, чтобы изменить ваш раздел «Проверить размер файла» тоже, я не буду делать вашу работу за вас, но я буду и вы в правильном направлении. Вам также необходимо запомнить, чтобы добавить tmp_name, чтобы переместить загруженный файл.

if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {

После исправления этих ошибок, изображения должны корректно обрабатывать. Если вы не получаете никаких других ошибок?

+0

Спасибо, похоже, все в порядке с этими изменениями –

+1

Это нормально, не беспокойтесь, поскольку @Fred -ii- указал выше, если вы не знаете, где происходят ошибки, вы можете использовать функции отчетности об ошибках, чтобы обеспечить лучшую идею. Вы также должны подумать о запуске нескольких дополнительных проверок в коде, чтобы убедиться, что изображение не может быть загружено не тому пользователю и что делать, если два пользователя хотят добавить два разных изображения с тем же именем, что может случиться. На данный момент вы просто отрицаете это, но это зависит от использования вашего скрипта. – Snappysites

Смежные вопросы