Страница 1 из 1

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

Добавлено: 2009-01-25 22:05:35
free
Помогите, не могу разобраться.
Есть сервер 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!! Что я не допонил? Помогите плиз.

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

Добавлено: 2009-01-25 22:11:19
zg
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/");
да не будет так работать, нельзя тут использовать ссылки, и копи и мув работают только с именами файлов

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

Добавлено: 2009-01-25 22:24:07
free
Не пойму. Поподробнее можно?

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

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

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

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

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

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

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

Добавлено: 2009-01-25 22:40:01
free
спасибо. разобрался. А особое спасибо за ссылку. Очень поможет в моих начинаниях ))) :good:

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

Добавлено: 2009-01-25 22:44:54
zg
возьми за правило - прежде чем использовать функцию, посмотри как она описана на php.net, особенно примеры

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

Добавлено: 2009-01-29 5:42:31
ADRE
кстате сами примеры для начала можно из php-nuke выковыривать, там все довольно просто написано, без классов....

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

Добавлено: 2009-01-29 13:35:03
Volodymyr
http://php.net/manual/ru/function.move- ... d-file.php - тут тоже неплохо все описано.

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

Добавлено: 2009-02-01 18:51:45
freetemp
А какой функцией можно имена файлов, которые буду заливать на сервер, менять по рандому. Чтобы названия не совпадали.

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

Добавлено: 2009-02-01 19:35:54
zg

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

Добавлено: 2009-02-01 19:56:35
freetemp
Это не то. Надо чтобы переименовывало по рандому. Т.е. к имени файла, загружаемого на сервер, приалбсовывалось рандомное заначение. А то совпадут названия файлов..... и перезапишется новым. Это для картиносвалки трекера надо.

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

Добавлено: 2009-02-01 20:07:18
zg

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

Добавлено: 2009-02-08 2:54:02
Alex Keda
freetemp писал(а):А какой функцией можно имена файлов, которые буду заливать на сервер, менять по рандому. Чтобы названия не совпадали.
md5 от файла и mktime()
например
не думаю что совпадёт в обозримом будущем =)))