Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2010, 16:50   #1
HTL
Пользователь
 
Регистрация: 30.03.2009
Сообщений: 77
По умолчанию Определение Content-Type

Каким способом можно определить Content-Type зная расширение файла?

Вся проблема в том что для каждого расширение надо указывать уникальный "Тип данных"
Вот пару примеров:
.txt text/plain
.exe application/x-msdos-program
HTL вне форума Ответить с цитированием
Старый 25.01.2010, 17:17   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если ИнДи то попробуйте не указывать('')он поидее должен сам подставить.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.01.2010, 17:23   #3
HTL
Пользователь
 
Регистрация: 30.03.2009
Сообщений: 77
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
если ИнДи то попробуйте не указывать('')он поидее должен сам подставить.
Я через сокет мультипост отправляю
HTL вне форума Ответить с цитированием
Старый 25.01.2010, 17:25   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

тогда там же подсмотрите
idmultipartformdata
(вроде так)
там посмотнрите как работает метод AddFile
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.01.2010, 19:00   #5
HTL
Пользователь
 
Регистрация: 30.03.2009
Сообщений: 77
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
тогда там же подсмотрите
idmultipartformdata
(вроде так)
там посмотнрите как работает метод AddFile
Там:
Код:
procedure TIdMultiPartFormDataStream.AddFile(const AFieldName, AFileName,
  AContentType: string);
и
Код:
ContentType := AContentType;
т.е. он указывается.

PS: AddFile не юзал, буду рыть инфу по AddFile...
HTL вне форума Ответить с цитированием
Старый 26.01.2010, 21:55   #6
HTL
Пользователь
 
Регистрация: 30.03.2009
Сообщений: 77
Стрелка Проблема решена.

Проблема решена просмотром реестра HKEY_CLASSES_ROOT


Код:
Var
Registry: TRegistry;
ContentType:string;
begin
   Registry := TRegistry.Create;
   Registry.RootKey:=HKEY_CLASSES_ROOT;
  if Registry.OpenKey(ExtractFileExt(form1.OpenDialog1.FileName),false) = true then
  begin
   if not (Registry.ReadString('Content Type') = '') then
   ContentType:= Registry.ReadString('Content Type')
   else
   ContentType:='application/octet-stream';
  end
  else ContentType:='application/octet-stream';
   Registry.CloseKey;
   Registry.Free;
form1.edit1.text:=ContentType;
end;
Код писал на коленях, поэтому реестр читал 3 раза, а не 2, кому надо тот переделает.

Ps: Тему Closed
HTL вне форума Ответить с цитированием
Старый 18.02.2010, 12:32   #7
MoM
Новичок
Джуниор
 
Аватар для MoM
 
Регистрация: 18.02.2010
Сообщений: 2
По умолчанию

А вот что советует хелп:

Example
(Delphi) Adding an upload file to a multipart data stream.

AValues := TIdStringList.Create;

AValues.Values['usr'] := '"John Doe"';
AValues.Values['grp'] := 'public';
AValues.Values['fil'] := 'c:imageslogo.gif';

PostStream:= TIdMultiPartFormDataStream.Create;
ResponseStream := TIdStringStream.Create('');

try
PostStream.AddFormField('usr', AValues.Values['usr']);
PostStream.AddFormField('grp', AValues.Values['grp']);
PostStream.AddFile('fil', AValues.Values['fil'], GetMIMETypeFromFile(AValues.Values['fil']));

IdHTTP1.Request.ContentType := PostStream.RequestContentType;
IdHTTP1.Post(sURL, PostStream, ResponseStream);
finally
Memo1.Text := ResponseStream.DataString;
ResponseStream.Free;
PostStream.Free;
AValues.Free;
end;

Последний раз редактировалось MoM; 18.02.2010 в 12:35.
MoM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение Mime Content type в Delphi lexesv Общие вопросы Delphi 2 24.11.2009 02:33
unsafe type Sergey2 Общие вопросы Delphi 0 08.08.2009 18:01
web-content alexinspir Общие вопросы по Java, Java SE, Kotlin 1 31.03.2009 04:55
Incompatible type conversion Fox99 Общие вопросы C/C++ 4 14.08.2008 11:45
New Type Манжосов Денис :) Общие вопросы Delphi 5 30.07.2008 12:34