2015-05-07 3 views
-1

Я хочу сделать простой загрузчик изображений.Почему я не могу загрузить с помощью этого php-кода?

У меня есть две страницы 'index.html' и 'upload.php'

Вот код index.html

<html> 
<head> 

<script> 

$(document).ready(function(){ 
$("#im").click(function() { 
    $("input[id='my_file']").click(); 
}); 
$("#su").click(function() { 
    $("input[id='submit']").click(); 
});  
}); 
    </script>  
</head> 


    <body> 

    <form method="post" action="upload.php" > 
     <img id="im" src="pic.png" width="30" height="30" /> 
     <img id="su" src="sent.png" width="50" height="50" /> 
     <input type="file" id="my_file" style="display: none;" name="img" /> 
     <input type="submit" id="submit" style="display: none;" value="Upload Image" name="submit"/> 
    </form> 

Вот код для upload.php:

<?php 

$target_path = "uploads/"; 
$target_path = $target_path . basename($_FILES['img']['name']); 

if(move_uploaded_file($_FILES['img']['tmp_name'], $target_path)) { 
    echo "The file ". basename($_FILES['img']['name']). 
    " has been uploaded"; 
} else{ 
    echo "fail : ". $_FILES['img']['error'] ; 
} 

?> 

Также я создал загрузку dir, и я проверил, является ли она доступной для записи, и это так. я редактировал php.ini и включил загрузки и поднял максимальный размер 50м

Когда я загрузить файл, он dispay: «сбой:»

+0

' " когда я загрузить файл, он dispay: "глючить:" почему?"' - Потому что последняя строка кода явно отображает этот текст ... – David

+0

http://php.net/manual/en/function.print-r.php - ваш друг, используйте его на '$ _FILES', например, посмотрите, что действительно отсутствует. –

ответ

5

Если у вас есть форма для загрузки файлов, вам нужно добавьте атрибут enctype='multipart/form-data'.

<form method="post" action="upload.php" enctype="multipart/form-data"> 
+1

Большое вам спасибо, это сработало –

0

Попробуйте использовать этот один: PHP код

<?php 
 
$target_dir = "uploads/"; 
 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
 
$uploadOk = 1; 
 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
 
// Check if image file is a actual image or fake image 
 
if(isset($_POST["submit"])) { 
 
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); 
 
    if($check !== false) { 
 
     echo "File is an image - " . $check["mime"] . "."; 
 
     $uploadOk = 1; 
 
    } else { 
 
     echo "File is not an image."; 
 
     $uploadOk = 0; 
 
    } 
 
} 
 
?>

+0

Проблема в HTML, а не (прежде всего) в PHP. – panther

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