загрузка файлов на сервер

Статус
В этой теме нельзя размещать новые ответы.
По примеру автора преместить файл почему-то не получилось. Ошибку не выдало, наоборот, вывелось sucsessful, но в директории файла нет. Я немного поменял код:

Код:
	$image = $_FILES['userfile']['tmp_name'];
	$image_name = $_FILES['userfile']['name'];
	$image_size = $_FILES['userfile']['size'];

	if (is_uploaded_file($image)) {
		$res = copy($image, './photos/'.$photos.'.jpg');
		if ($res) {
			//echo "succesfull";
		}
		else
		{
			//echo "$image";
		} 
	}

Все работает. Файлик копируется и переименовуется. Теперь хочу спросить, файл $image - это всегда один и тот-же файл, или это разные файлы при разных загрузках? Нехотелось бы, чтобы все загруженные фото дублировались в какой-то темповской директории. Следует ли удалять этот файл? Иесли да, то функцией unlink или какой другой?
 
Цитата из документации по PHP:
Файл будет удалён из временной директории по окончании запроса, если он (файл) не перемещён или не переименован.

Читаем и делаем выводы: Для просмотра ссылки Войди или Зарегистрируйся
 
Кажется я понял почему работало в IE
$row и $photo инициализировались автоматом из-за включенного register_globals
но причина неработоспособности в других браузерах не в этом
браузерам вообще пофиг на php, они его не видят.
Дело в форме - нет кнопки отправить.
IE отправляет по ентеру в поле имени файла, а другие браузеры нет!

Ratko:
добавь на форму
<input type="submit" value="Send File" />

да тут почитай:
много полезного
 
Вообще сабмит выполняла ссылка:

Код:
<a class="toolbar" href="#" onClick="document.forms[0].submit();">Загрузить</a>

Параметр $row передался, база заполнилась. Сейчас все работает без кнопки сабмита.
 
Можно еще вот так:

///размер загружаемого файла
$fileuploadsize = $_FILES['filename']['size'];
if ($fileuploadsize > 1000000) {
echo "Размер файла превышает допустимые размеры";
exit();
}


///Добавляем в базу

$sql = sprintf("
INSERT INTO `database`.`af_p` (
`af_p_id` ,
`af_p_num` ,
`af_p_cat` ,
`af_p_size` ,
`af_p_about`,
`af_p_price`
)
VALUES (
NULL , '$_POST[num]', '$_POST[cat]', '$_POST[size]', '$_POST[about]', '$_POST[price]'
);");

file_put_contents(mysql_insert_id().'.jpg', file_get_contents($_FILES["filename"]["tmp_name"]));


function ResizeImage($image_from,$image_to, $fitwidth=600,$fitheight=400,$quality=70) {
global $php_inc;
$os=$originalsize=getimagesize($image_from);
if($originalsize[2]!=2 && $originalsize[2]!=3 && $originalsize[2]!=6 && ($originalsize[2]<9 or $originalsize[2]>12)) {
return false;
}
if($originalsize[0]>$fitwidth or $originalsize[1]>$fitheight) {
$h=getimagesize($image_from);
if(($h[0]/$fitwidth)>($h[1]/$fitheight))
{
$fitheight=$h[1]*$fitwidth/$h[0];
}else{
$fitwidth=$h[0]*$fitheight/$h[1];
}
if($os[2]==2 or ($os[2]>=9 && $os[2]<=12))$i = ImageCreateFromJPEG($image_from);
if($os[2]==3)$i=ImageCreateFromPng($image_from);
$o = ImageCreateTrueColor($fitwidth, $fitheight);
imagecopyresampled($o, $i, 0, 0, 0, 0, $fitwidth, $fitheight, $h[0], $h[1]);
imagejpeg($o, $image_to, $quality);
chmod($image_to,0777);
imagedestroy($o);
imagedestroy($i);
return 2;
}
if($originalsize[0]<=$fitwidth && $originalsize[1]<=$fitheight) {
$i = ImageCreateFromJPEG($image_from);
imagejpeg($i, $image_to, $quality);
chmod($image_to,0777);
return 1;
}
}


$image_from=mysql_insert_id();
$image_to=mysql_insert_id();

ResizeImage("$image_from.jpg","$image_to.jpg");

copy ("$image_to.jpg", "product/$image_to.jpg" );

Добавлено через 2 минуты
Собственно картинка переименовывается так же как ID в базе.
Потом изменяем ее размер и копируем в нужную папку.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху