|
Пропадает расширение в System.Net.Mail.MailMessage.Attachments
|
|||
---|---|---|---|
#18+
Привет всем! Пользую FrameWork 3.5 Формирую письмо с вложением и отсылаю через System.Net.Mail.SmtpClient формирую вложение (файл Excel в архиве). создаю архив так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
добавляю вложения так: Код: c# 1. 2. 3.
в результате - получаю письмо с вложением (архив RAR), но в архиве файл Excel потерял расширение... т.е. файл назывался Excel.xlsx, а в пришедшем архиве его файл Excel xlsx (без точки между именем и расширением)... хотя смотрю заархивированный файл, котрый добавляю в архив - там всё чётко: ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 13:10 |
|
Пропадает расширение в System.Net.Mail.MailMessage.Attachments
|
|||
---|---|---|---|
#18+
WitC, ... так у вас оно все точки в имени файла заменяет на пробелы, как я понял? ... попробуйте поиграться с Код: vbnet 1.
..ну, или другие кодировки ... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 13:41 |
|
Пропадает расширение в System.Net.Mail.MailMessage.Attachments
|
|||
---|---|---|---|
#18+
WitC, класс GZipStream умеет архивировать только один файл. Расширение файла не сохраняется т.к. формат gzip требует сохранять только имя файла. Более того, допускается ситуация когда имени может и не быть. Раз у тебя .NET 3.5, то придется использовать внешние библиотеки - SharpZipLib или DotNetZip. Если есть возможность перейти на .NET 4.5, то там появились классы ZipArchive и ZipFile умеющие создавать нормальные архивы. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 15:36 |
|
Пропадает расширение в System.Net.Mail.MailMessage.Attachments
|
|||
---|---|---|---|
#18+
bazile, да, архивирую GZip, т.к. не хотел пользовать сторонние библиотеки... архивация только одного файла удовлетворяет требованиям... на счёт имени - да, таким способом можно заархивировать любую последовательность байт... хоть кусок текста из памяти..... но! когда я архивирую - файл сохраняет и название и расширение (скрин "До отправки"), я спокойно открываю его RAR-ом и смотрю в Экселе, без дополнительных телодвижений выбора программы для просмотра... когда получаю в письме - архив сохраняет и имя, и расширение (.rar)... но заархивированный файл теряет все точки (заметил carrotik) (скрин "После получения") прихожу к выводу - проблема не в архивации, а в пересылке (добавления к аттачу)... в свойствах System.Net.Mail.Attachment не нашёл, чего бы дёргнуть для исправления ситуации... HELP! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 17:05 |
|
Пропадает расширение в System.Net.Mail.MailMessage.Attachments
|
|||
---|---|---|---|
#18+
http://codearticles.ru/articles/1103 GZip не может хранить внутри архива имя файла. Следует не менять расширение на .zip, а добавлять к имени. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 17:32 |
|
Пропадает расширение в System.Net.Mail.MailMessage.Attachments
|
|||
---|---|---|---|
#18+
WitC, .. ну, можно еще попробовать загружать Attachment не из файла напрямую, а прочитать файл в MemoryStream, а его уже в свою очередь подсунуть в Attachments.Add() ... Хотя, в принципе, должно быть одно и то же .... Кстати, вы источник полученного сообщения посмотреть можете, там вложение в base64? .... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 17:33 |
|
|
start [/forum/topic.php?fid=20&msg=38443445&tid=1403784]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
335ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 342ms |
total: | 778ms |
0 / 0 |