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 скрипт для того чтобы пользователь сайта мог загрузить файл на сервер

 PHP.SU

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


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

> Без описания
Domain
Отправлено: 01 Марта, 2010 - 17:51:33
Post Id


Новичок


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


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




Подскажите пожайлуста скрипт на Php загрузки пользователями файла на сервер и последующий вывод ссылки на него вместе с описанием на страницу.
Желательно хотябы с минимальными защитами от взлома.

(Отредактировано автором: 01 Марта, 2010 - 17:52:51)

 
 Top
biperch
Отправлено: 01 Марта, 2010 - 22:07:40
Post Id



Частый посетитель


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


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




форма выбора файла
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form method="post" action="cat_new.php" enctype="multipart/form-data">
  3. <input type="file" name="file_img"/>
  4. <input type="submit" value="Создать запись"/>
  5. </form>
  6.  


скрипт обработки полученного
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_FILES['file_img'])){
  3.        
  4.         $uploaddir = '../img/catalog/';
  5.         $oldfilename=basename($_FILES['file_img']['name']);
  6.         $uploadfile = $uploaddir.$oldfilename;
  7.  
  8.        
  9.         if (move_uploaded_file($_FILES['file_img']['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.      
  14.         } else {
  15.                
  16.         print "Possible file upload attack!  Here's some debugging info:\n";
  17.         print "Possible file upload attack!  Дополнительная отладочная информация:\n";
  18.         print_r($_FILES);
  19.      
  20.         }//if (move_uploaded_file($_FILES['file_img']['tmp_name'], $uploadfile)) {
  21.        
  22.  }//if (isset($_FILES['file_img'])){
 
 Top
JustUserR
Отправлено: 01 Марта, 2010 - 22:21:59
Post Id



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


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


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




biperch пишет:
Скрипт обработки полученного
Еще бы неплохо по просьбе автора добавить вывод ссылки на закачанный файл - если известен фиксированный URL-адрес сайта и папка куда файлы сохраняются то можно просто подставить имя закачанного файла и получить путь А вот в общем случае необходимо сначала получить путь к PHP-скрипту типа PHP_SELF и относительно него вычислить полный виртуальный путь папки с закачками (Например разбивает путь к PHP-скрипту на части по директориям и проходится по относительному пути в папке с закачками и переходим в них по очереди Улыбка - а далее подставляем URL-адрес сайта и имя файла и получаем ссылку Улыбка


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



Частый посетитель


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


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




JustUserR
JustUserR пишет:
Еще бы неплохо по просьбе автора добавить вывод ссылки на закачанный файл
во блин, меня в тот момент жена в спину пяткой била, мол го пить шампусь и тд. а ты мне про ссылки, про линки Подмигивание
 
 Top
Domain
Отправлено: 01 Марта, 2010 - 23:35:37
Post Id


Новичок


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


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




JustUserR, на словах хорошо)
Дайте пожайлуста пример кода, когда освободитесь))
 
 Top
biperch
Отправлено: 01 Марта, 2010 - 23:46:22
Post Id



Частый посетитель


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


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




если брать мой скрипт то $uploadfile ссылка на залитый файл относительно скрипта в который передали
 
 Top
JustUserR
Отправлено: 02 Марта, 2010 - 15:38:56
Post Id



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


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


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




Domain пишет:
JustUserR, на словах хорошо) Дайте пожайлуста пример кода, когда освободитесь))
Код можно придумать примерно такой для получения виртуального пути в папке с закачанным файлами на основе относителнго пути к ним от PHP-скрипта
PHP:
скопировать код в буфер обмена
  1. shift($cur_paths=explode("/",$_SERVER['PHP_SELF']));
  2. ($uplf_paths=explode("/",$path_to_uploaded_files));
  3. for($i=0;$i<count($uplf_paths);$i++) {if($uplf_paths[$i]==".") {}
  4. elseif($uplf_paths[$i]=="..") {pop($cur_paths);}
  5. else {$cur_paths[]=$uplf_paths[$i];}}
  6. $real_path="/".implode("/",$cur_paths);
Вообще хорошо было бы всегда использовать виртуальные пути но в файловой системе это будет не то


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


Новичок


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


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




А со статус баром? Улыбка
 
 Top
Domain
Отправлено: 03 Марта, 2010 - 17:23:46
Post Id


Новичок


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


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




У меня проблемма, при записи файла с названием на русском файл записывается с "иеролглифами" в названии. Как с этим бороться?
 
 Top
biperch
Отправлено: 03 Марта, 2010 - 18:09:22
Post Id



Частый посетитель


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


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




Domain пишет:
У меня проблемма, при записи файла с названием на русском файл записывается с "иеролглифами" в названии. Как с этим бороться?

попробуй кодировку имени файла поменять, что то вроди этого
 
 Top
Domain
Отправлено: 03 Марта, 2010 - 18:11:13
Post Id


Новичок


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


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




Как это зделать?)

(Добавление)
Само название файлов решил преобразованием.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $oldfilename = str_replace(array(' ','а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц',
  3. 'ч', 'ш', 'щ', 'ь', 'ъ', 'ы', 'э', 'ю', 'я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф',
  4. 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ъ', 'Ы', 'Э', 'Ю', 'Я'), array('_','a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p',
  5. 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja', 'A', 'B', 'V', 'G', 'D', 'E', 'Jo', 'Zh', 'Z', 'I', 'I', 'K', 'L', 'M',
  6. 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'X', 'C', 'Ch', 'Sh', 'Sch', 'J', 'J', 'Y', 'E', 'Y', 'Ja'), $oldfilename);
  7.  



У меня есть еще значение на русском, которое передается в базу Mysql. Оно сохраняется в виде "????????" как это исправить?

(Отредактировано автором: 03 Марта, 2010 - 18:29:20)

 
 Top
biperch
Отправлено: 03 Марта, 2010 - 18:59:36
Post Id



Частый посетитель


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


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




 
 Top
Domain
Отправлено: 03 Марта, 2010 - 19:24:37
Post Id


Новичок


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


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




Неполучается((

Это тоже не помогает:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. mysql_query ("set character_set_client=’cp1251’");
  3. mysql_query ("set character_set_results=’cp1251’");
  4. mysql_query ("set collation_connection=’cp1251_general_ci’");
  5.  

(Добавление)
Проблема решилась установкой кодировки базы и таблиц utf8_unicode_ci

(Отредактировано автором: 03 Марта, 2010 - 20:21:20)

 
 Top
Domain
Отправлено: 03 Марта, 2010 - 22:58:07
Post Id


Новичок


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


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




Перекинул весь комплект в корень папки, начало выдавать вот такие ошибки...

Warning: move_uploaded_file(../literature/Rezume.rar) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/mydomain/public_html/uploa d.php on line 15

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpxIQz8A' to '../literature/Rezume.rar' in /home/mydomain/public_html/uploa d.php on line 15


Почему upload.php неможет загрузить файлы?
Пробовал ставить скрипту и папке права 0777, не помогает. Иногда даже выдает ошибку
Internal server ))

(Отредактировано автором: 03 Марта, 2010 - 22:59:59)

 
 Top
Domain
Отправлено: 04 Марта, 2010 - 01:31:25
Post Id


Новичок


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


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




Проблема оказалась в пути к папке.
Если в начале стоит "../" после наклонной идет сначала папка в которой находится скрипт, а потом уже только куда загрузится файл.
В данном случае нужно было прописать так

move_uploaded_file(literature/Rezume.rar....
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB