в очередной раз про Upload файлов

KorP

Новичок
в очередной раз про Upload файлов

никак не пойму в чём косяк. есть скрипт, работает нормально, аплоадит в заданную папку файл и всё гуд, на его основе делают систему по работе с картинками - аплоад файла не происходит ни в какую. Постом файл отправляется скрипту, $_FILES - массив, echo $_FILES['userfile']['name']; ничего не возвращает, в скрипте поставил error_reporting(E_ALL); в итоге получаю Undefined index: userfile, userfile - имя поля в форме для отправки файла, print_r($_POST); выдаёт массив данных из формы и картинку в том числе
http://phpclub.ru/detail/article/upload читал, по нему изначально свой скипт и делал, всё работало, а здесь нет
в чём косяк никак не пойму...в поиске про такое вродь не нашёл
 

Фанат

oncle terrible
Команда форума
проверь еще раз, все ли ты делаешь по инструкции.
как форму, так и обработчик.
 

KorP

Новичок
эм...да, забыл в форму добавить enctype='multipart/form-data' но теперь не вижу что бы сама картинка передавалась скрипту, хотя при этом $_FILES['userfile']['name'] возвращает правильное имя файла, носоответственно аплоад опять не происходит...пути проверил, вродь всё верно, картинку двигаю как по ману - if (move_uploaded_file($_FILES['userfile']['tmp_name'], $dir.$_FILES['userfile']['name']))
 

Фанат

oncle terrible
Команда форума
двигать ничего не надо.
надо проверять свои безответственные утверждения.
аплоад опять не происходит? как ты это проверил?
аплоад - это загрузка файла на сервер.
файл загружается во временный файл

какая функция проверяет существование файла?
где ты её вызываешь?
 

KorP

Новичок
как проверяю? echo $_FILES['userfile']['tmp_name']; должен возвращать путь к временному файлу. PHP Version 4.4.5, по муолчанию upload_tmp_dir - no value. как ещё проверить - не знаю
 

Фанат

oncle terrible
Команда форума
в ['userfile']['error'] что-нибудь есть?
вывод ошибок включен?
 

KorP

Новичок
['userfile']['error'] посмотрел, выдаёт - 2
error_reporting(E_ALL); - ничего не выдаёт
 

Фанат

oncle terrible
Команда форума
error_reporting(E_ALL); - это не вывод ошибок.
а уровень отображения.
 

Iskman

Новичок
Помогите пожалуйста, переменная "USERFILE" даже не передается, не знаю в чем ошибка?
--------------------------------------------------------------------------------------
Файл с которого отправляю:
PHP:
<form action="ReceiveFile.php" method="post" enctype="multipart/form-data">
<input type="file" name="userfile">
<input type="submit" name="submit" value="Добавить">
</form>
-------------------------------------------------------------------------------------
Принимаю:
PHP:
  if(is_uploaded_file($_FILES["userfile"]["tmp_name"])){
    $lastid = "file.txt";
    $tempfile = $_FILES['userfile']['tmp_name'];
    if(copy($tempfile, "./DOWNLOADS/".$lastid)){
      echo "Скопирован успешно - ID = ".$lastid."<br>";
    }else{exit("Не удалось скопировать файл.");}
  }else{echo "Не удалось загрузить файл, даже как временный.";}
Такая ощибка:
Notice: Undefined index: userfile in ...
 

pilot911

Новичок
вывод переменной делай не через echo, а через var_dump();

потом, файл перемещай не функцией copy, а функцией move_uploaded_file($tmp_path, $new_path)


пс. multipart/form-data возьми в кавычки
 

Iskman

Новичок
Кавычки я ставил, убирал, это влияние не имеет.
Дело в том что оно работает на другом сервере, а на Denver'е нет, то есть на Denver'e не переменная через $_FILES не передается вообще. Мне необходимо тестировать пока, так что прямо на сервере делать это не актуально.
Помогите исправить ошибку, как я понял исправлять надо в Denver'e а не в моих кодах.
Не очень разбираюсь в "php.ini", но там разрешено загрузки файла на сервер, максимальный размер 2 МБ, директория указана, так в чем же дело?
 

Фанат

oncle terrible
Команда форума
Кавычки надо поставить, и не убирать. Это не браслетик, который захотел - снял, захотел - надел. Это синтаксис. Разговаривать с тобой будут только после того, как ты сделаешь нормальную форму, и приведешь здесь результат ЕЁ работы. Без "ой, я там забыл, а тут перепутал".
 

Iskman

Новичок
Отнюдь как "браслетик". Этот синтаксис игнорируют известные все броузера, но спасибо за совет по заданию вопросов.
Пожалуйста, ответе на мой предыдущий пост.
 

Фанат

oncle terrible
Команда форума
Мальчик.
На вопросы "В чем зе дело" отвечают не посторонние люди, а сам программист. Садись и разбирайся.
 

Iskman

Новичок
Да уж, ***** ты только умеешь людей опускать, но я не в обиде если что хотя тебе это без разницы, "Мальчик" наверное ты написал не подумав не знаю возраста того кому ты обращаешься, хотя по моим вопросам можно было так и подумать не самостоятельный человек как будто, просто несколько часов про мучался с этой проблемой.
Спасибо еще раз, буду разбираться сам дальше..
 

Фанат

oncle terrible
Команда форума
Дело не в опускать.
Ты приходишь к незнакомым людям, которые тебя видят в первый раз, а твой денвер вообще в глаза не видели. И задаешь вопрос "дорогие ученые. у меня в подвале происходит подземный стук. Объясните, отчего он происходит".

И думаешь, что все вместе с тобой начнут дружно гадать - "а может эта настройка? А может - другая?".
Никто этого делать не будет. Потому что решая свои проблемы - тоже не делает. Проблемы в программировании решаются не гаданием, а отладкой. Выводом ошибок, переписыванием и сокращением кода. Сделать это кроме тебя на твоем денвере - некому.
var_dump($_FILES);
var_dump($_POST); что выводит?
 

Iskman

Новичок
(Все, все понял что не правильно спрашивал)
Я не гадал, но когда ошибка есть когда все правильно, произвольно начинаешь гадать..
Переменные через $_FILES вообще не передаются:
var_dump($_FILES):
array(0) { }
var_dump($_POST);
array(2) { ["submit"]=> string(8) "Добавить" }

-~{}~ 16.02.09 15:59:

Всем спасибо, исправил..
Оказывается не правильно была указана директория для временных файлов в "php.ini".
Но на хостинге ошибка такая:
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to access /uploads/file.txt in ...
Попытаюсь исправить, но если не сложно могли бы ответить, как разрешить доступ, ведь там на хостинге у меня нет доступа к "php.ini"?
 

Фанат

oncle terrible
Команда форума
кто ж тебе даст на серваке в корень писать?

-~{}~ 16.02.09 13:14:

пиши к себе в домашнюю директорию
 
Сверху