
| Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
![]() |
||
php как загрузить файл на сервер?
|
||
| Философия, технологии, алгоритмы! |
![]() |
|
|
Опции темы |
|
|
#1 |
|
Форумец
Сообщений: 60
Регистрация: 09.08.2008
|
php как загрузить файл на сервер?
Делаю по примеру и книги Димки Котерова:
вот форма: Код:
<body> <form action=script.php method="POST" enctype=multipart/form-data> Выберите файл:<br> <input type=file name=File><br> <br> <input type=submit name=doUpload value="загрузить"><br> </form> </body> [PHP] <?php $ImgDir=strval($_POST['mtype']); if (@$doUpload) { if (@file_exists($File)) { Copy($File, "$ImgDir/".basename($File_name)); } } ?>[/PHP] Вроде все легко и просто до безобразия. Но! на виндовом апаче он у меня файлы загружает. На апаче, который я поднял под Линуксом(Debian) он файл почему-то принимать не хочет. вот эта переменная - $File_name почему-то оказывается пустой. не хотит принимать ни какие файлы, даже те, названия которых состоит из одних цифр. Последний раз редактировалось Виктoр; 25.02.2009 в 22:52. |
|
|
|
|
#3 | |
|
Форумец
Сообщений: 60
Регистрация: 09.08.2008
|
Yandex, нет. тут проблема не в путях. сейчас вообще убрал строку и strval($_POST['mtype']) задал папку "temp". Результат тот же. имя файла почему-то приходит пустым. я там задал форму такую, что к заргужаемому файлу приклепляется описание:
[PHP]$d=@opendir($tmp); if(!$d) { mkdir($tmp); } chdir($tmp); $fname="{$File_name}"; if (is_file("{$fname}.txt")) { $i=1; while (is_file("{$fname}({$i}).txt")) {$i++;} $fname.="({$i}).txt"; } else { $fname.=".txt"; } $tmp="docs/".$ImgDir; $fname.=".txt"; $file=fopen($fname, "w+b"); $dat=date("Y,m,d,G:i D"); $str="{$_POST['name']}\n{$dat}\n{$_POST['text']}"; fwrite($file,$str); fclose($file);[/PHP] и все. переменные с полей name, text передаются. и по директории docs/console (в моем примере это имя переменной mtype) создается текстовик с правильным содержанием. но с именем ".txt". т.е. у меня имя имя файла в самом начале пустое. $fname="{$File_name}"; Причем этот же скрипт под виндой-то работает. Цитата:
|
|
|
|
|
|
#4 |
|
иногородний
Сообщений: 231
Регистрация: 26.10.2008
Возраст: 41
|
Выкиньте эту книгу.
Код:
<form enctype="multipart/form-data" action="_URL_" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> Отправить этот файл: <input name="userfile" type="file" /> <input type="submit" value="Send File" /> </form> // В PHP 4.1.0 и более ранних версиях следует использовать $HTTP_POST_FILES // вместо $_FILES. $uploadfile = '/uploads/' . basename($_FILES['userfile']['name']); print "<pre>"; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { print "File is valid, and was successfully uploaded. "; print "Here's some more debugging info:\n"; print_r($_FILES); } else { print "Possible file upload attack! Here's some debugging info:\n"; print "Possible file upload attack! Дополнительная отладочная информация:\n"; print_r($_FILES); } print "</pre>"; ?> [/PHP] |
|
|
|
|
#5 | |
|
Форумец
Сообщений: 60
Регистрация: 09.08.2008
|
A-Maverick, не помогло
![]() Цитата:
|
|
|
|
|
|
#6 |
|
Форумец
|
|
|
|
|
|
#7 |
|
Форумец
Сообщений: 60
Регистрация: 09.08.2008
|
Это я тоже уже просмотрел. В папку console куда я хочу записать, разрешено писать всем и вся.
Конфиги тоже лопатил. Ничего инетерсного не нашел..Извините, я не спец в этом. в архиве конфиги обоих A-Maverick под виндой код выдает тоже самое. |
|
|
|
|
#8 |
|
Форумец
|
|
|
|
|
|
#11 |
|
Форумец
Сообщений: 60
Регистрация: 09.08.2008
|
Yandex, действительно дурной. дико сомневаюсь что от версии что-то зависит.
Linux Debian 4.0 r3 PHP 5.2.0-8+etch13 (cli) (built: Oct 2 2008 08:26:18) apache 2.2.3-4 +etch6 под виндой: Apache 2.2.6 PHP 5.2.5 Немножко различаются. Ну и что теперь? Обновлять под линуксом апач? А типа в той версии такой простой код реалиовать нельзя? Вопрос носит, наверно, чисто административный характер, а не программируемый. Тему можно закрыть или перенести в соотвествующий раздел(не знаю куда )
|
|
|
|
|
#14 |
|
Форумец
Сообщений: 60
Регистрация: 09.08.2008
|
|
|
|
|
|
#16 | |
|
Форумец
Сообщений: 60
Регистрация: 09.08.2008
|
Rаvel, это?
Цитата:
|
|
|
|