Запись файла на сервер

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
free
рядовой
Сообщения: 20
Зарегистрирован: 2008-12-16 18:52:51

Запись файла на сервер

Непрочитанное сообщение free » 2009-01-25 22:05:35

Помогите, не могу разобраться.
Есть сервер http://localhost/test
В этой папке два файла index.php и upload.php
index.php

Код: Выделить всё

<form enctype="multipart/form-data" action="http://localhost/test/upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Отправить">
</form>
upload.php

Код: Выделить всё

<?php 
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
    copy($_FILES['userfile']['tmp_name'], "http://localhost/test/");
} else {
    echo "Possible file upload attack. Filename: " . $_FILES['userfile']['name'];
}
/* ...или... */
move_uploaded_file($_FILES['userfile']['tmp_name'], "http://localhost/test/");
?>
Все вроде элементарно. Форма передает переменную userfile. Срабатывает проверка условия. В данном случаи is_uploaded_file проверяет есть ли такой файл, если есть то перемещает его временно в tmp_name. НО!! Если запустить скрипт, сробатывает else!! Что я не допонил? Помогите плиз.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Запись файла на сервер

Непрочитанное сообщение zg » 2009-01-25 22:11:19

free писал(а):copy($_FILES['userfile']['tmp_name'], "http://localhost/test/");
это ты как?
free писал(а):is_uploaded_file($_FILES['userfile']['tmp_name'])
гм... сделай что-ли print_r($_FILES)
free писал(а):move_uploaded_file($_FILES['userfile']['tmp_name'], "http://localhost/test/");
да не будет так работать, нельзя тут использовать ссылки, и копи и мув работают только с именами файлов

free
рядовой
Сообщения: 20
Зарегистрирован: 2008-12-16 18:52:51

Re: Запись файла на сервер

Непрочитанное сообщение free » 2009-01-25 22:24:07

Не пойму. Поподробнее можно?

Код: Выделить всё

print_r($_FILES);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], "./"))
{
	echo "Rabotaet";
} else {
	
	echo "Error";
}
Вывод

Код: Выделить всё

Array ( [userfile] => Array ( [name] => Eragon05.jpg [type] => [tmp_name] => [error] => 2 [size] => 0 ) ) Error

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Запись файла на сервер

Непрочитанное сообщение zg » 2009-01-25 22:29:49

free писал(а): Поподробнее можно?
нужно -))) http://ru2.php.net/manual/ru/features.f ... method.php
free писал(а):[error] => 2

Код: Выделить всё

UPLOAD_ERR_FORM_SIZE 
   Значение: 2; Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме.

free
рядовой
Сообщения: 20
Зарегистрирован: 2008-12-16 18:52:51

Re: Запись файла на сервер

Непрочитанное сообщение free » 2009-01-25 22:40:01

спасибо. разобрался. А особое спасибо за ссылку. Очень поможет в моих начинаниях ))) :good:

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Запись файла на сервер

Непрочитанное сообщение zg » 2009-01-25 22:44:54

возьми за правило - прежде чем использовать функцию, посмотри как она описана на php.net, особенно примеры

Аватара пользователя
ADRE
майор
Сообщения: 2641
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: Запись файла на сервер

Непрочитанное сообщение ADRE » 2009-01-29 5:42:31

кстате сами примеры для начала можно из php-nuke выковыривать, там все довольно просто написано, без классов....
//del

Аватара пользователя
Volodymyr
лейтенант
Сообщения: 614
Зарегистрирован: 2008-06-17 16:04:56
Откуда: Ukraine, Lviv
Контактная информация:

Re: Запись файла на сервер

Непрочитанное сообщение Volodymyr » 2009-01-29 13:35:03

http://php.net/manual/ru/function.move- ... d-file.php - тут тоже неплохо все описано.

freetemp
проходил мимо

Re: Запись файла на сервер

Непрочитанное сообщение freetemp » 2009-02-01 18:51:45

А какой функцией можно имена файлов, которые буду заливать на сервер, менять по рандому. Чтобы названия не совпадали.


freetemp
проходил мимо

Re: Запись файла на сервер

Непрочитанное сообщение freetemp » 2009-02-01 19:56:35

Это не то. Надо чтобы переименовывало по рандому. Т.е. к имени файла, загружаемого на сервер, приалбсовывалось рандомное заначение. А то совпадут названия файлов..... и перезапишется новым. Это для картиносвалки трекера надо.


Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35420
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Запись файла на сервер

Непрочитанное сообщение Alex Keda » 2009-02-08 2:54:02

freetemp писал(а):А какой функцией можно имена файлов, которые буду заливать на сервер, менять по рандому. Чтобы названия не совпадали.
md5 от файла и mktime()
например
не думаю что совпадёт в обозримом будущем =)))
Убей их всех! Бог потом рассортирует...