imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 16.06.2002, 16:04     # 1
timur-kar
Guest
 
Сообщения: n/a

Upload файлов на сервер

Как сделать нормальный скрипт upload'a файлов на сервер. Я сделал один, но он нормально уплоадит и записывает только текстовые файлы. Такое ощущение, что скрипт не может работать со специальными символами. Если есть понятный пример - киньте пожалуйста.
 
Старый 16.06.2002, 16:06     # 2
timur-kar
Guest
 
Сообщения: n/a

Совсем забыл. Если можно - на Perl, в крайнем случае PHP.
 
Старый 17.06.2002, 00:47     # 3
Stasik
Registered User
 
Аватар для Stasik
 
Регистрация: 27.03.2002
Адрес: дома
Сообщения: 1 660

Stasik Известность не заставит себя ждатьStasik Известность не заставит себя ждать
на перле я знаю только через модуль CGI...
ты просто binary забыл

$upload_dir = '/';

$filename = param('file');

$info_outfile = lc($filename);
$info_outfile =~ s {.*[\:\\\/]} []gos;
$info_outfile =~ s/[^A-Za-z0-9\._ \-=@\x80-\xFE]/_/go;
$info_outfile =~ s/ /_/g;

if(-e "$upload_dir/$info_outfile" || param('filename') ne $info_outfile){
print "exists"; exit;
};

(open INFO,">$upload_dir/$info_outfile");
binmode INFO;
while ($bytes = read($filename,$data,1024)) {
$length_info += $bytes;
print INFO $data;
}
close(INFO);
Stasik вне форума  
Старый 12.04.2003, 16:39     # 4
tot_ra
::VIP::
 
Аватар для tot_ra
 
Регистрация: 14.04.2002
Адрес: EE/Tln
Сообщения: 2 288

tot_ra Луч света в тёмном царствеtot_ra Луч света в тёмном царствеtot_ra Луч света в тёмном царствеtot_ra Луч света в тёмном царствеtot_ra Луч света в тёмном царствеtot_ra Луч света в тёмном царстве
я вот тоже возжелал узнать.. как сие осуществляется? тоесть сначала форма, выбирается файл.. и вжик.. POST-ом заливается.. как это сделать на php ?
tot_ra вне форума  
Старый 12.04.2003, 21:22     # 5
tot_ra
::VIP::
 
Аватар для tot_ra
 
Регистрация: 14.04.2002
Адрес: EE/Tln
Сообщения: 2 288

tot_ra Луч света в тёмном царствеtot_ra Луч света в тёмном царствеtot_ra Луч света в тёмном царствеtot_ra Луч света в тёмном царствеtot_ra Луч света в тёмном царствеtot_ra Луч света в тёмном царстве
вот.. кой что нашел
http://www.php.net/manual/en/features.file-upload.php
http://www.webclass.ru/rus/Tutorials...load_with.html
tot_ra вне форума  
Старый 13.04.2003, 01:28     # 6
AleXXXSoft
Guest
 
Сообщения: n/a

Как делать UPLOAD файлов на сервер и о возможных глюках.

--------------------------------------------------------------------------------


Что такое FILE UPLOAD?

Это возможность передать файлы с компьютера посетилеля в вашу ПХП программы. Это значит, вы получаете файл(ы) от посетителя и что-либо с ними делаете:
ничего (человек в пустую будет upload'ить файл)
вывести содержимое на экран (если файл был текстовым)
записать файл один к одному в каталог на веб-сервере
запихнуть фотку (файл=фото) в базу данных (про это написано в статье Бинарные файлы/картинки, показ/просмотр, общение с базой данных)

--------------------------------------------------------------------------------


== 1 ==
(отправка файла)
создайте файл upload.html такого содержимого:
<html><meta http-equiv="pragma" content="no-cache"><bodY>
<FORM ENCTYPE="multipart/form-data" ACTION="http://www.php.spb.ru/php/upload2.phtml" METHOD=POST>
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000"><!-- макс. размер -->
Имя файла: <INPUT NAME="userfile" TYPE="file">
<INPUT TYPE="submit" VALUE="Отправить">
(нажмите кнопку <b>ОБЗОР</b>, затем <b>ОТПРАВИТЬ</b>)
</FORM>
</body></html>

Получится пустая html-страница, содержащая форму: поле для ввода имени файла (ничего вводить не надо!), кнопку ОБЗОР, которая открывает окошко для выбора файла, кнопка ОТПРАВИТЬ - отправка формы на сервер.

Действия посетителя:
юзер нажимает обзор, выбирает файл(ы)

юзер нажимает отправить

"Программер" (вы) можете подредактировать
поле ACTION="upload2.phtml" (имя php-программы, принимающей файл)
поле name="MAX_FILE_SIZE" value="1000" - размер максимально допустимого размера файла для аплода.



--------------------------------------------------------------------------------


== 2 ==
(прием и использование)
Ваша программа на php (в файле upload2.phtml), чтобы получить отправленный файл НЕ ДОЛЖНА НИЧЕГО ДЕЛАТЬ! Все само! Радуйтесь, товарищи :-)

Перед началом выполнений вашей программы сервер принимает файл, а ПХП-процессор сообщает имя временно файла (переменная $userfile), в котором храниться только что полученный файл. Поэтому вам нужно лишь открыть файл на чтение и считать содержимое. Даже стирать этот временный файл не надо.

Как вывести upload'еный файл на экран? Вот программа (ее надо записать в файл upload2.phtml )
<?
echo "

Вы загрузили файл размером:
<font color=red><b>$userfile_size</b></font> байт<br><br>

На вашем компьютере файл назывался:
<font color=red><b>$userfile_name</b></font><br><br>

На нашем сервере ваш файл был записан для временного храниения
по адресу и под именем
<font color=red><b>$userfile</b></font><br><br>

Ниже его содержимое:<br> <font color=blue><pre>";

// для тех, кто не знает, команда echo implode("",file("имя_файла"));
// выводит содержимое "имя_файла" на экран

echo implode("",file($userfile));

?>


--------------------------------------------------------------------------------


== 3 ==
(о глюках)
Попробуйте аплодить таким способом на сервер бинарные файлы. Скорее всего файлы окажутся "битыми": фотки не будут показываться, программы не запустяться, архивы не распакуются. Текстовые файлы (почти точно) не повредяться. Дело в том, что Русский Апач (ваш веб-сервер) перекодирует все подряд. Например, символ с кодом 0х00 он заменяет на пробел (символ с кодом 0х20). Чтобы выключить эту ненужную перекодировку, допишите в файл httpd.conf из каталога Апача (/usr/local/apache) следующие строки. Если у вас нет доступа к этому файлу и админ сервера не может сделать это за вас, ткните его в эти строки.


<Location />
CharsetRecodeMultipartForms Off
</Location>

Строку CharsetRecodeMultipartForms Off можно добавлять в разные места (один раз). Если вы совсем начинающий пользователь и не решите сами, куда писать эту строку, будьте аккуратнее при решении задачи методом тыка.

Можно почитать: на счет разных способов вставки данной команды (CharsetRecodeMultipartForms Off)




(c)www.php.spb.ru
 


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 10:49.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.