Поле за прикачване на файл?

radibg2

Registered
Имам следният код:
PHP:
<?php
include "config.php";
$allowed_filetypes = array('.jpg','.jpeg','.png','.gif');
$max_filesize = 1572864;
$upload_path = 'images/points/';
$filename = $_FILES['userfile']['name'];
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
if(addslashes($_POST['upload_image']) && in_array($ext,$allowed_filetypes) && $_FILES['userfile']['size'] < $max_filesize) {
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path) && addslashes($_POST["area"]) && addslashes($_POST["type"]) && addslashes($_POST["lat"])
&& addslashes($_POST["lng"]) && addslashes($_POST["ds"]) && addslashes($_POST["wi"])
&& addslashes($_POST["size"]) && addslashes($_POST["ht"]) && addslashes($_POST["dr"])) {
$image_name=$_FILES['userfile']['tmp_name'];
$image=$upload_path.$image_name;
$send="insert into db (field,field1,field2,field3,field4,field5,field6,field7,field8,field9)values('$_POST[area]','$_POST[type]','$_POST[lat]','$_POST[lng]','$_POST[ds]','$image','$_POST[wi]','$_POST[size]','$_POST[ht]','$_POST[dr]')";		
$result=$bd->query($send);
echo "Успешно добавихте точка.";
} else {
     echo 'Възникна проблем.  Моля опитайте по-късно.';
}
}
else{
echo "Не сте попълнили полетата правилно или изображението е прекалено голямо/забранено разширение.";
}
Полето за изображение:
HTML:
<input type="file" name="upload_image" />
Когато се опитам да прикача изображение ми изписва "Не сте попълнили полетата правилно или изображението е прекалено голямо/забранено разширение.", къде е проблема?
 
В един .httacess сложи:
Код:
php_value upload_max_filesize 100M
php_value post_max_size 100M

Също така формата трябва да съдържа ето този атрибут:

HTML:
enctype="multipart/form-data"
 
Направих го и ми излезе следната грешка:
Warning: POST Content-Length of 8537 bytes exceeds the limit of 100 bytes in Unknown on line
 
В .httaccess:
Код:
php_value upload_max_filesize 100M 
php_value post_max_size 100M

Във файла с PHP upload кода сложи най - отгоре:
PHP:
ini_set('memory_limit', '-1');

Формата трябва да представлява:
HTML:
<form method="post" action="#" enctype="multipart/form-data">
<input type="file" name="userfile"  />

/** Some other inputs. */

</form>

Това ако не ти помогне, незнам какво ще е то.
 
Пак ми излиза - Не сте попълнили полетата правилно или изображението е прекалено голямо/забранено разширение.
ПП:
Малко ъпдейтнах кода
Код:
include "config.php";
ini_set('memory_limit', '-1');
$allowed_filetypes = array('.jpg','.jpeg','.png','.gif');
$max_filesize = 1572864;
$upload_path = 'images/img/';
$filename = $_FILES['upload_image']['name'];
$ext = pathinfo($filename, PATHINFO_EXTENSION);
$newFileName = uniqid() . $ext;
$rand = rand(1,15000);
$newfilename = $filename. 978645213/$rand.$ext;
if(addslashes($_POST['upload_image']) && in_array($ext,$allowed_filetypes) && $_FILES['upload_image']['size'] < $max_filesize && !file_exists("images/points".$newfilename)) {
if(move_uploaded_file($_FILES['upload_image']['tmp_name'],$upload_path.$newfilename) && addslashes($_POST["area"]) && addslashes($_POST["type"]) && addslashes($_POST["la"])
&& addslashes($_POST["ln"]) && addslashes($_POST["ds"]) && addslashes($_POST["wi"])
&& addslashes($_POST["size"]) && addslashes($_POST["ht"]) && addslashes($_POST["dr"])) {
$image=$upload_path.$newfilename;
$send="insert into db(feild,feild,feild,feild,feild,feild,feild,feild,feild,feild)values('$_POST[area]','$_POST[type]','$_POST[la]','$_POST[ln]','$_POST[ds]','$image','$_POST[wi]','$_POST[size]','$_POST[ht]','$_POST[dr]')";		
$result=$bd->query($send);
echo "Успешно добавихте точка.";
} else {
     echo 'Не сте попълнили полетата правилно.';
}
}
else{
echo "Изображението е прекалено голямо,забранено разширение или има друго със същото име.";
}
 
Промени това :
PHP:
$allowed_filetypes = array('.jpg','.jpeg','.png','.gif');
на:
PHP:
$allowed_filetypes = array('jpg','jpeg','png','gif');
 

Горе