Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: помогите с загрузкой файла

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Puschistic
Отправлено: 02 Августа, 2010 - 13:07:46
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




всем привет. на локальной машине все работает, но на хостинге отказывается. пробовал и copy($_FILES['userfile']['tmp_name'], $uploadfile) и move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile) результат эдентичный. print_r($_FILES) выдаёт
CODE (htmlphp):
скопировать код в буфер обмена
  1.             [name] => 1.txt
  2.             [type] => text/plain
  3.             [tmp_name] => /www/tmp_upload_dir/phpv2qAE4
  4.             [error] => 0
  5.             [size] => 7
PHP:
скопировать код в буфер обмена
  1. $uploaddir = '/www/add_news/';
  2. $uploadfile = $uploaddir.$_FILES['userfile']['name'];
  3. if (copy($_FILES['userfile']['tmp_name'], $uploadfile))
  4. {
  5. echo "<h3>Файл успешно загружен на сервер</h3>";
  6. }
  7. else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!</h3>"; exit; }
  8. print "<pre>";
  9. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
  10.     print "File is valid, and was successfully uploaded. ";
  11.     print "Here's some more debugging info:\n";
  12.     print_r($_FILES);
  13. } else {
  14.     print "Possible file upload attack!  Here's some debugging info:\n";
  15.     print "Possible file upload attack!  Дополнительная отладочная информация:\n";
  16.     print_r($_FILES) ;
  17. }
  18. print "</pre>";
PHP:
скопировать код в буфер обмена
  1. <form style='padding-left:30px; text-align:left' action="form_insert_news_DB.php" enctype="multipart/form-data" method='POST'>
  2. <p>Заполните текст формы:</p>
  3. <p><textarea name="news" cols="40" rows="3"></textarea></p>
  4. <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  5.  Отправить этот файл: <input name="userfile" type="file" />
  6. <p><input type='submit'  value='ok'></p>
  7. </form>


Отредактировано модератором: JustUserR, 03 Августа, 2010 - 02:18:20
Обрамил PHP-коды в соответствующее BB-теги
 
 Top
JustUserR
Отправлено: 03 Августа, 2010 - 02:24:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Puschistic Судя по приведенным вами значениям из массива $_FILES по закачке файла с идентификатором поля userfile - она прошла успешно и файл сохранился во временную директорию и к тому же об этом информирует значение error которое равняется нулю При этом ошибочно завершается сам процесс копирования файла в заданную директорию - это может происходить про причине того что на нее установлены недостаточные права доступа для пользователя от которого исполняется PHP-скрипт - или же неправильно определен путь относительно рабочей директории В первом случае убедитесь в существовании папки в которую копируется файл и наличие для нее максимальных прав доступа 777 и для всех ее родительских папок права на исполнение - а вто втором случае укажите полный путь с использованием значения переменной окружения DOCUMENT_ROOT


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Puschistic
Отправлено: 03 Августа, 2010 - 08:37:05
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




попробовал так ------ $uploaddir = '$_SERVER['DOCUMENT_ROOT']."/www/informstreet.ru/add_news/';
$uploadfile = $uploaddir.$_FILES['userfile']['name'];
if (copy($_FILES['userfile']['tmp_name'], $uploadfile))
{
echo "<h3>Файл успешно загружен на сервер</h3>";
}
else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!</h3>"; exit; }
укажите плиз что не так, права на обе папки стоят 777, вот только сначала значение у временной папки в php.ini было no value я связался и попросил что бы они выставили какое нибудь другое, сделали \tmp
 
 Top
JustUserR
Отправлено: 04 Августа, 2010 - 01:03:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Puschistic Для диагностики вы можете вывести в браузер значения строковых переменных в которых хранятся пути к временному закачанному файлу и его новому местоположению - и посмотреть эти строки в сгенерированном исходном HTML-коде для выявления значений интерполируемых в них переменных - в том виде котором они использовались в файловых функциях в PHP-скрипте то есть без дополнительного экранирования
К примеру в вашем PHP-скрипте может использоваться неправильное значение строковой константы в которой хранится относительный путь к директории с закачиваемыми файлами относительно корня сайта - ведь эта строка должна содержать дерево папок внутри директории web-сайта - а в вашем примере она вероятно дублирует значение DOCUMENT_ROOT
Попробуйте установить следующее значение для переменной $uploaddir - а именно $uploaddir = (substr($_SERVER['DOCUMENT_ROOT'],0,1)==="/") ? $_SERVER['DOCUMENT_ROOT']."add_news/" : $_SERVER['DOCUMENT_ROOT']."/add_news/" - в данном случае определяется наличие возможного завершающего слеша в переменной окружения DOCUMENT_ROOT и в зависимости от него в тренарном операторе используются разные строковые константы - а также относительный путь к папке с закачками исправлен на предполашаемый который не содержит лишних директорий


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB