Forum Webscript.Ru

Программирование => Perl => Тема начата: teebot от 03 Августа 2001, 23:20:35

Название: UPLOAD. Немогу выделить данные которые закачал
Отправлено: teebot от 03 Августа 2001, 23:20:35
???Есть форма для закачки файла на сервер, состоит она из описания закачиваемого файла, имя того кто прислал, его мэйл ну и собственно сам файл.
Все поля я обрабатываю нормально но когда доходит до файла я не могу выделить все что находится между boundary и Content-Type: xxxxxx/yyyy тоесть сам файл.
                                                                          image/gif
Погогите плиззззз...
Спасибо. ???
Название: UPLOAD. Немогу выделить данные которые закачал
Отправлено: cj от 22 Апреля 2001, 10:32:35
Цитировать
Yurick (21-04-2001 20:48):
Нужно содать кучу новых директорий
вида www.domen.net/username, но не хочется их
хранить в корневой директории, посему хотелось бы
создать алиасы и хранить все это в отдельной директории
типа www.domen.net/users/username.

Пробовал ставить в файле htaccess строку с описанием
алиаса - в ответ получил ошибку 500 при попытке открыть любую
страницу сайта.

Если использовать редирект или скрипт, то в адесной строке
появляется реальное адрес страницы, что не есть good.

Помогите, плз, а то уже мозги закипают.

UserDir ?
Название: UPLOAD. Немогу выделить данные которые закачал
Отправлено: от 22 Апреля 2001, 20:29:59
Цитировать
cj (22-04-2001 10:32):

UserDir ?

Ответ не понял...
названия директорий приведены условные.
Название: UPLOAD. Немогу выделить данные которые закачал
Отправлено: teebot от 13 Августа 2001, 22:57:55
Здравствуйте.
Извините что сам не догадался.
Как я уже неднократно упоминал в перле я человек новый, поэтому я ошибочно полагал что  не существует четкой границы между данными из формы, файлом и разными там Content-Disposition: и т.д и т.п. но граница есть, это таки \\r\\n. Секрет в том, что я сначало делил этот закачаный бред split`ом по признаку Content-Disposition: (<<во дурак то>>), а надо было по boundary. И только тогда могла получиться такая вот фигня:
Content-Disposition: form-data; name=\'ufile\'; filename=\'D:\\KZD\\TC\\add.GIF\' Content-Type: \\r\\n image/gif \\r\\n
<--------сам файл-------->
Так мне удалось разбить полученную информацию.
Но тут вылезла другая фигня, в самом файле тоже могла встретиться последовательность \\r\\n и файл мог закачиваться неполностью (пардон ошибся файл закачивается полностью всегда, просто последовательность \\r\\n могла разбить и сам файл на части, что крайне нежелательно).
Но так как переменная типа @var=split является массивом, то я просто пропустил
$var[0]-там хранится "пусто"
потом обработал
$var[1]-там хранится Content-Disposition:form-data; name=\'ufile\'; filename=\'D:\\KZD\\TC\\add.GIF
потом пропустил
$var[2]-там хранится Content-Type:
потом пропустил
$var[3]-там хранится image/gif
$var[4]-там хранится "пусто", а все что дальше, это и есть файл.

Ну вот вроде и все. Старался как мог.
Название: UPLOAD. Немогу выделить данные которые закачал
Отправлено: Light Elf от 04 Августа 2001, 08:01:02
Что за вопрос, где исходник и подробности.
Как тебе помочь - сказать что в у тебя где-то ошибка?

У тебя указан в форме enctype?
Название: UPLOAD. Немогу выделить данные которые закачал
Отправлено: teebot от 04 Августа 2001, 19:01:27
enctype у меня есть.

А насчет исходняка, дело в том, что я как раз эту часть скрипа не реализовал.
Так как я абсолютно не знаком с этой технологией пришлось постигать все самому.
Я смотрел что находится в $st (read(STDIN,$st,$ENV{\'CONTENT_LENGTH\'});)
Если стоит enctype то $ENV{\'CONTENT_TYPE\'}; в любом случе выглядит как:
multipart/form-data; boundary=-----------------------------xxxxxxxxxxxxx
НО есть еще один CONTENT_TYPE, того файла который мы закачиваем.
Все выглядит примерно так (если мы закачиваем гифку):

Content-Type: image/gif......ЗАКАЧИВАЕМЫЙ ФАЙЛ........---------------7d135212e74
Как показала практика после image/gif нет даже пробела. Как узнать где заканчивается image/gif и начинается ФАЙЛ (закачиваем не только гифы, все поподет под руку) и где заканчивается ФАЙЛ и начинается ---------------7d135212e74--?
Может существует переменная,типа CONTENT_TYPE, где хринится этот проклятый image/gif.
Еще заметил такую фигню после записи этого бреда в файл граница становится предельно четкой это \\r\\n.

Такие вот пироги.
Название: UPLOAD. Немогу выделить данные которые закачал
Отправлено: Realtor from Moscow от 06 Августа 2001, 05:05:06
Если вопрос ко мне, то Апач самый обычный. ver 1.3.6.
Название: UPLOAD. Немогу выделить данные которые закачал
Отправлено: teebot от 06 Августа 2001, 14:02:44
Друзья!!!

Данные были успешно мною выделенный спасибо всем.
Название: UPLOAD. Немогу выделить данные которые закачал
Отправлено: от 06 Августа 2001, 14:09:08
Цитировать
Друзья!!!
Данные были успешно мною выделенный спасибо всем.


Ну рассказал бы что-ли.
Название: UPLOAD. Немогу выделить данные которые закачал
Отправлено: Realtor from Moscow от 05 Августа 2001, 03:32:26
Я данный вопрос муссирую на форуме около месяца :D Еще ни кто не ответил по теме. Мои настройки сервера проверял Chs, сказал - Ок. В чем прикол, сам не пойму. Вроде не начанающий. Скрипты народ тоже проверил.
Найди тему Upload фалов в теме CGI-скрипты.
:o

[Edited on 4.8.2001  Realtor from Moscow]
Название: UPLOAD. Немогу выделить данные которые закачал
Отправлено: от 05 Августа 2001, 17:39:18
А Апач русский ?