![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отправка и прием файлов через NMSTRM [D7, WinXP]
pest_tt © (2007-01-04 17:03:00)вопрос такой:
с клиента отправляю файл на сервер. возможно ли как-нибудь определить какого формата был отправлел файл? или вмемте с файлом отправить какую-нибудь метку или что-то вроде того, чтобы узнать в каком формате сохранять файл.
пробовал с клиента писать:
NMStrm1.FromName:='pic.jpg';
но как при получении файла прочитать это самое FromName?
курсовая повисла... Заранее благодарю за ответ
pest_tt (2007-01-04 20:00:00) [1]спасибо, MetalFan_pda, готовить не надо)
MetalFan_pda (2007-01-04 19:44:00) [2]TStream.ReadBuffer
TStream.WriteBuffer
TStream.CopyFrom
TStream.Position
TStream.Seek
+F1 ?
или тебе готовенькое надо?
pest_tt (2007-01-04 19:38:00) [3]я не пойму, Джо, ты предлагаешь использовать байты уже имеющиеся в отправляемом файле или дописывать в начало потока потока дополнительные байты? если первый вариант, то именно для этого я и хотел изучить структуру графических файлов. а усли второй вариант, то скажи, пожалуйста, как дописать при отправке и потом прочитать и удалить при приеме.
pest_tt (2007-01-04 19:30:00) [4]и как потом удалить эти три байта, чтобы файл не повредить?
Джо (2007-01-04 19:29:00) [5]> [6] MetalFan_pda (04.01.07 19:15)
> а если расширение 4 байта? ))
Да хоть 125.
Пусть придумает протокол, подходящий для его задач, это не суть важно. Например, первыми идут два байта, в которых хранится длина расширения, затем само расширение, затем данные. Какая, собственно, разница.
pest_tt (2007-01-04 19:29:00) [6]
> Какую структуру, зачем изучать? Ты, когда посылаешь файл,
> знаешь какое у него расширение? Ну, вот его и посылай в
> первых трех байтах потока.
а как это реализовать?
при отправке в переменнуюfile_stream: TMemoryStream;как добавить в начало 3 байта? если можешь приведи пример кода.
Джо (2007-01-04 19:29:00) [7]> первыми идут два байта, в которых хранится длина расширения
Неплохой запас :-D
MetalFan_pda (2007-01-04 19:15:00) [8]а если расширение 4 байта? ))
Джо (2007-01-04 18:40:00) [9]> [4] pest_tt © (04.01.07 18:38)
> спасибо, Джо, была такая мысль, но не знаю структуру bmp
> и jpg файлов. у bmp по-моему в начале файла идут две буквы
> BM. теперь надо структуру изучать...
Какую структуру, зачем изучать? Ты, когда посылаешь файл, знаешь какое у него расширение? Ну, вот его и посылай в первых трех байтах потока.
pest_tt (2007-01-04 18:38:00) [10]спасибо, Джо, была такая мысль, но не знаю структуру bmp и jpg файлов. у bmp по-моему в начале файла идут две буквы BM. теперь надо структуру изучать...
Джо (2007-01-04 17:26:00) [11]> [2] pest_tt © (04.01.07 17:16)
>
> >> или вмемте с файлом отправить какую-нибудь метку
>
>
> как это сделать? не отправлять же два файла, один файл jpg
> а другой файл со словом 'jpg'?
Ты, собственно, не файл отправляешь, а поток данных. Вот пусть твой протокол предусматривает, что, например, первые 3 байта потока хранят «формат» файла.
pest_tt (2007-01-04 17:16:00) [12]
>> или вмемте с файлом отправить какую-нибудь метку
как это сделать? не отправлять же два файла, один файл jpg а другой файл со словом 'jpg'?
и для чего вообще нужен FromName у клиента, если его никак не прочитать? если можно прочитать, то это решит все проблемы.
Джо (2007-01-04 17:10:00) [13]> или вмемте с файлом отправить какую-нибудь метку