2014-10-20 2 views
-1

Я пытаюсь загрузить изображение в папку и сохранить путь в таблице. Я попытался загрузить изображение jpg, но он отображает ошибки:PHP Загрузка изображения

Файл, который вы пытались загрузить, не разрешен.

и

Undefined индекс: UserFile в C: \ WAMP \ WWW \ Web \ db_add_page.php на линии 21.

Это мой код:

add_page.php

<form action="db_sql/db_add_page.php" method="post"> 
    <input type="text" size="100" name="tittle" required /> 
    <input type="file" name="userfile"/> 
    <input type="submit" value="Submit"> 
</form> 

db_add_page.php

$tittle = $_POST['tittle']; 
$allowed_filetypes = array('.jpg','.jpeg','.png','.gif'); 
$max_filesize = 10485760; 
$upload_path = 'uploads/'; 

$filename = $_FILES['userfile']['name']; 
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); 

if (!in_array($ext,$allowed_filetypes)) 
    die('The file you attempted to upload is not allowed.'); 

if (filesize($_FILES['userfile']['tmp_name']) > $max_filesize) 
    die('The file you attempted to upload is too large.'); 

if (!is_writable($upload_path)) 
    die('You cannot upload to the specified directory'); 

if (move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)) 
{ 
    $acc_status = "INSERT INTO add_services (aid,tittle,name) 
    VALUES(NULL,'".$tittle."','".$filename."')"; 
    db::getInstance()->exec($acc_status); 
} 
+0

это может быть столица (.JPG, .JPEG, .PNG, .GIF) .. в основном созданные камерой изображения делают это. – Roi

+2

также добавьте этот атрибут в тег формы

myte

+0

та же ошибка «Файл, который вы пытались загрузить, не разрешен». – Tje

ответ

2

Существует недостающий атрибут в < виде > тега. Вам нужно установить envtype, чтобы получить файлы. Попробуйте это:

<form action="db_sql/db_add_page.php" method="post" enctype="multipart/form-data"> 
0

, наконец я нашел мою ошибку

$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); 

должен быть

$ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); 

и

$allowed_filetypes = array('.jpg','.jpeg','.png','.gif'); 

должен быть

$allowed_filetypes = array('jpg','jpeg','png','gif'); 

Спасибо за вашу поддержку.

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