Upload файлов

Sherlok Holms

Новичок
Upload файлов

Скажыте пожалуйста, вот я прочитал статью http://phpclub.ru/detail/article/upload , но ничего не понял, точнее у меня не получается...:( :( :(
Сють дела в том что мне надо в фотогаллерее сохранять картинки, а у меня ничегошеньки неработает. Вот кусок моего кода:
PHP:
 $max_image_width = 2000;
$max_image_height = 2000;
$max_image_size = 1024 * 1024;
$valid_types =  array("gif","jpg", "png", "jpeg");

$uploaddir='/images/';


if (isset($_FILES['userfile'])) {
	if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {$filename = $_FILES['userfile']['tmp_name'];
$ext =substr($_FILES['userfile']['name'], 1 + strrpos($_FILES['userfile']['name'], "."));
		if (filesize($filename) > $max_image_size) {
			echo 'Error: File size > 1M.';
		} elseif (!in_array($ext, $valid_types)) {
			echo 'Error: Invalid file type.';
		} else {
 			$size = GetImageSize($filename);
 			if (($size) && ($size[0] < $max_image_width) 
				&& ($size[1] < $max_image_height)) {
				if (@move_uploaded_file($filename, $uploaddir.$_FILES['userfile']['name'])) {
					echo 'File successful uploaded.';
				} else {
					echo 'Error: moving file failed.';
				}
			} else {
				echo 'Error: invalid image properties.';
			}
		}
	} else {
		echo "Error: empty file.";
	}
} else {
	echo  '<script language="JavaScript">
location.replace("http://192.168.0.2/gallery/new_image.php")
</script>';
}
Так вот у меня картинку сохраняет во временный каталог-/tmp, файл-images, но если его просмотреть то там находиться тот рисунок который я хотел закачать...
 

baev

‹°°¬•
Команда форума
И ник намекает на выдающиеся дедуктивные способности автора...
 

Balloon

Новичок
$uploaddir='/images/';
нада полный физический путь прописывать
типа /home/my_domain.com/images/
ето только пример..
полный физический путь можно узнать через phpinfo()
 

kruglov

Новичок
Полный физический путь можно узнать через __FILE__, а то под IISом document_root нету.
 

Sherlok Holms

Новичок
Я извиняюсь если не коректно изложил вопрос, но когда я пишу весь путь, наприм у меня : webservers/home/192.168.0.2/gallery/images/ , то пишет ошибку "Немогу переписать в папку". У мня стоит сервак Денвер. Я В РНРinfo() всё просмотрел и подкорректировал как написано в статье. но всеравно ничего не работает. Зарание большое спасибо всем...

-~{}~ 04.03.07 20:17:

А еще в массиве $_FILES все написано и все правильно!!! Я сам немогу понять чё неработает... Вроде все чики-пики, а вот кидает картинку в корень сервака, и имя ставит "images" без разширения.
 

exxbrain

Новичок
if (@move_uploaded_file($filename, $uploaddir.$_FILES['userfile']['name'])) {
@ - убери для начала
"Немогу переписать в папку" это "Error: moving file failed"?

P.S. Денвер - это не сервак.
 

andymc

Новичок
1. Расширение определяется так
PHP:
$a = pathinfo($file);
return $a["extension"];
2. Определять тип файла по расширению - небезопасно. Лучше mime_content_type - определяет MIME Content-type файла
3. А вообще загружать файл просто.
В переменной $_POST['userfile'] - путь к файлу
$s = file_get_contents($_POST['userfile']);
И пишем строку по требуемому адресу.
 

kruglov

Новичок
andymc
Это как раз через mime_content_type небезопасно. Загрузят вам file.php, а внутри он будет чистый JPEG, кроме небольшой вставочки <? ... ?>
 

exxbrain

Новичок
Лучше mime_content_type - определяет MIME Content-type файла
1.This function has been deprecated as the PECL extension Fileinfo provides the same functionality (and more) in a much cleaner way.

2. Еще не факт что получится воспользоваться
 

andymc

Новичок
kruglov
Значит расширение тоже надо проверять.

exxbrain
А что вы предлагаете? Проверять только расширение? А если я у архива rar поменяю расширение на jpg, и загружу? Это же будет не картинка?
Значит по расширению всяко проверять нельзя.
 

Фанат

oncle terrible
Команда форума
надоела эта шарманка.
каждый месяц, как по расписанию....
 

tf

крылья рулят
$uploaddir='/images/';
нада полный физический путь прописывать
типа /home/my_domain.com/images/
необязательно
можно и относительный ($uploaddir='images/'; ), если руки не кривые
Автор оригинала: andymc
А если я у архива rar поменяю расширение на jpg, и загружу?
и что это даст?
Автор оригинала: andymc
В переменной $_POST['userfile'] - путь к файлу
правильно, еще не зыбывает ставить права для файла на выполнение

-~{}~ 05.03.07 23:55:

Фанат, а зачем ты тему сново открыл?
интересно
 

Фанат

oncle terrible
Команда форума
ну аффтар-то не должен страдать
не он же этот флейм затеял
 

Sherlok Holms

Новичок
Пацаны пасибо, проблема всётаки в пути была.... я всем вам очень благодарен.... еще раз спасиб..... мне спасли!!!!!!!! :)
 
Сверху