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
Форумы портала PHP.SU :: Версия для печати :: скрипт не загружает файлы...
Форумы портала PHP.SU » » Вопросы новичков » скрипт не загружает файлы...

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

1. foozzi - 05 Ноября, 2011 - 17:11:45 - перейти к сообщению
в чет дело то, пишет что не загрузился файл... вот код:

PHP:
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  4.                 <link rel="stylesheet" type="text/css" media="all" href="style.css">
  5.         </head>
  6.         <body>
  7.                 <table width="100%" height="100%"><tr valign="center"><td align="center" nowrap><div id="upload">
  8.  
  9.  
  10. <?PHP
  11.  
  12. /* Загрузка файлов с запретом исполняемых файлов */
  13. /* Только блеадь почему то не робит... */
  14.  
  15. /* Создаем паттерн, где есть список запрещенных файлов по расширению */
  16. if (@$_POST ['upload'] == "")
  17. {
  18.                                 echo 'Выберите файл | Максимальный размер 2000 MB | Запрещенно заливать исполняемые файлы<br><br>';
  19.                                 echo '<form enctype="multipart/form-data" action="" method="post">';
  20.                                 echo '<input type="hidden" name="MAX_FILE_SIZE" value="30000">';
  21.                                 echo '<input type="file" name="file" size="45">';
  22.                                 echo '<input type="submit" value=" Грузить! " name="upload">';
  23.                                 echo '</form>';
  24.                         } else {
  25.  
  26. $blacklist = '/.(com|bat|exe|cmd|vbs|msi|jar|php(\d?)|phtml|access|js)$/i'; // патерт с запрещенными файлами
  27. /* Если файл содержит запрещенное разрешение - выход с уведомлением*/
  28. if (preg_match($pattern, $_FILES['file']['name']))
  29. {
  30.    exit ("Файл с данным расширением запрещен к загрузке");
  31. }
  32.  
  33. $upload_dir = '/uploads/'; // папка
  34. $upload_path = dirname (__FILE__).$upload_dir; //путь
  35. $upload_filename = $upload_dir . basename($_FILES['file']['tmp_name']); // имя файла не изменное
  36. $upload_link = "http://".$_SERVER ["HTTP_HOST"].dirname ($_SERVER ["PHP_SELF"]).$upload_dir.$upload_filename; // образовывает ссылку на скачивание
  37.  
  38. if (@move_uploaded_file($_FILES['file']['tmp_name'], $upload_path.$upload_filename))  
  39. {
  40.      echo "Файл загружен.\n";
  41.      echo "Линки:<br>";
  42.      echo "<input type='text' size=80 onclick='this.select()' value='".$upload_link."'><br><br>";
  43.      echo "HTML Линк:<br>";
  44.      echo "<input type='text' size=80 onclick='this.select()' value=\"<a href='".$upload_link."'>".$upload_link."</a>\"><br><br>";
  45.      echo "BB-Code Линк:<br>";
  46.      echo "<input type='text' size=80 onclick='this.select()' value='[url]".$upload_link."[/url]'><br><br>";
  47.      echo "<a href='?".md5(microtime())."'>Загрузить другой файл</a>";
  48.  }
  49. else
  50. {
  51.    echo "Файл не загружен.\n";
  52. }
  53. }
  54. ?>
  55.  
  56.  
  57.  
  58. </body>
  59. </html>
  60.  


в чет дело то?

ниже архив с файлом прикрепил, кому удобней будет
2. sKaa - 05 Ноября, 2011 - 17:25:54 - перейти к сообщению
Хотелось бы увидеть саму форму
3. Мелкий - 05 Ноября, 2011 - 17:26:20 - перейти к сообщению
http://phpfaq[dot]ru/debug
особенно пункты 1 и 4
4. LIME - 05 Ноября, 2011 - 17:30:42 - перейти к сообщению
sKaa так увидь ))
foozzi права?
5. foozzi - 05 Ноября, 2011 - 17:53:35 - перейти к сообщению
Notice: Undefined variable: pattern in /var/www/files/index.php on line 30 Warning: preg_match(): Empty regular expression in /var/www/files/index.php on line 30
6. LIME - 05 Ноября, 2011 - 17:57:12 - перейти к сообщению
foozzi пишет:
$blacklist = '/.(com|bat|exe|cmd|vbs|msi|jar|php(\d?)|phtml|access|js)$/i'; // патерт с запрещенными файлами
/* Если файл содержит запрещенное разрешение - выход с уведомлением*/
if (preg_match($pattern, $_FILES['file']['name']))
ну все верно
переменные то разные
7. foozzi - 05 Ноября, 2011 - 18:39:19 - перейти к сообщению
исправил, все равно не загружает, ошибок не выводит никаких, chmod -R 777
8. LIME - 05 Ноября, 2011 - 18:41:28 - перейти к сообщению
Мелкий пишет:
особенно пункты 1 и 4
выведи var_dump($_FILES)
(Добавление)
попробуй copy() вместо move_uploaded_file()
если на хостинге файлы закачиваются на другой носитель то только так
9. foozzi - 05 Ноября, 2011 - 18:46:24 - перейти к сообщению

сервер дома, со своего харда гружу на свой же севрер

copy() пробовал, эффект тот же
10. LIME - 05 Ноября, 2011 - 18:49:48 - перейти к сообщению
foozzi пишет:
var_dump(Array)
это че за фигня
var_dump() это фция вывода
она сама по себе выводит не надо никаких echo
(Добавление)
PHP:
скопировать код в буфер обмена
  1.                         } else {
  2. var_dump($_FILES);
  3. $blacklist = '/.(com|bat|exe|cmd|vbs|msi|jar|php(\d?)|phtml|access|js)$/i'; // патерт с запрещенными файлами
  4. /* Если файл содержит запрещенное р
11. tuareg - 05 Ноября, 2011 - 19:00:13 - перейти к сообщению
попробуйте из 38 строчки убрать собачку
if (@move_uploaded_file($_FILES['file']['tmp_name'], $upload_path.$upload_filename))
И попробуйте загрузить файл
12. LIME - 05 Ноября, 2011 - 19:06:58 - перейти к сообщению
tuareg
Цитата:
Если filename не является загруженным файлов, никаких действий не предпринимается и move_uploaded_file() возвращает FALSE.
а вот в массиве $_FILES есть элемент с текстом ошибки
Цитата:
$_FILES['userfile']['error'] - Начиная с версии 4.2.0, содержит код ошибки, который равен 0, если операция прошла успешно.
13. tuareg - 05 Ноября, 2011 - 19:28:51 - перейти к сообщению
Я и не спорю, что Ваш вариант правильный. Просто если прикинуть так.
Проблема не загружается файл.
Возможные проблемы.
Ошибка в форме.
Или загрузка произошла, но загрузилось не туда куда хотели Улыбка
Если не используем собачку, сразу узнаем, что произошло.
14. foozzi - 05 Ноября, 2011 - 19:45:08 - перейти к сообщению
LIME
array(1) { ["file"]=> array(5) { ["name"]=> string(8) "acig.zip" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(2) ["size"]=> int(0) } } Файл не загружен.
15. LIME - 05 Ноября, 2011 - 19:47:45 - перейти к сообщению
http://www.php.net/manual/ru/fea...pload.errors.php
(Добавление)
значица так
сначала надо создать папку 'uploads' в текущей папке скрипта
потом изменить следующую строчку
$upload_filename = basename($_FILES['file']['tmp_name']); // имя файла не изменное

 

Powered by ExBB FM 1.0 RC1