|
c# Определить тип файла из byte[]
|
|||
---|---|---|---|
#18+
Здравствуйте. Подскажите пожалуйста, что я не так делаю? Код рабочий. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
Я выбираю запускаю в алгоритм файл docx и xlsx и они и они у меня имеют один и тот же заголовок application/x-zip-compressed. Почему так? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 13:17 |
|
c# Определить тип файла из byte[]
|
|||
---|---|---|---|
#18+
NechtoКод рабочий. Вы хотите сказать, что это компилируется? Nechto Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 13:33 |
|
c# Определить тип файла из byte[]
|
|||
---|---|---|---|
#18+
Nechto, ну а запилить с http://www.pinvoke.net/default.aspx/urlmon.findmimefromdata не судьба? два копипаста Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 13:47 |
|
c# Определить тип файла из byte[]
|
|||
---|---|---|---|
#18+
Cat2NechtoКод рабочий. Вы хотите сказать, что это компилируется? Nechto Код: c# 1. 2. 3. 4. 5. 6. 7.
Это место для наглядности ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 13:50 |
|
c# Определить тип файла из byte[]
|
|||
---|---|---|---|
#18+
Где-то в степиNechto, ну а запилить с http://www.pinvoke.net/default.aspx/urlmon.findmimefromdata не судьба? два копипаста Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Чем мой пример отличается от этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 13:54 |
|
c# Определить тип файла из byte[]
|
|||
---|---|---|---|
#18+
NechtoЧем мой пример отличается от этого? Ваш не работает ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 13:56 |
|
c# Определить тип файла из byte[]
|
|||
---|---|---|---|
#18+
Cat2NechtoЧем мой пример отличается от этого? Ваш не работает Он работает, только почему-то выдает application/x-zip-compressed на файлы MSoffice 2010. Я поискал и нашел что дело возможно в архивации файла. Хотя данные в базу я сохраняю в исходном виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 13:59 |
|
c# Определить тип файла из byte[]
|
|||
---|---|---|---|
#18+
Потому что .docx и .xlsx это zip-архивы, можешь сменить расширение и открыть архиватором. А mime type есть не для всех типов файлов. Например application/octet-stream это двоичный файл без указания формата, а не doc. Надо не mime type смотреть, а сигнатуры искать, т.е. проверять содержимое файла на соответствие всем нужным форматам. С .docx и .xlsx это первые символы "PK" (сигнатура zip архива), затем извлекать оттуда [Content_Types].xml и смотреть его. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 14:03 |
|
c# Определить тип файла из byte[]
|
|||
---|---|---|---|
#18+
Dima TПотому что .docx и .xlsx это zip-архивы, можешь сменить расширение и открыть архиватором. А mime type есть не для всех типов файлов. Например application/octet-stream это двоичный файл без указания формата, а не doc. Надо не mime type смотреть, а сигнатуры искать, т.е. проверять содержимое файла на соответствие всем нужным форматам. С .docx и .xlsx это первые символы "PK" (сигнатура zip архива), затем извлекать оттуда [Content_Types].xml и смотреть его. Наконец, то хоть один весомый ответ. В общем нужно реализовывать через context types ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 14:06 |
|
c# Определить тип файла из byte[]
|
|||
---|---|---|---|
#18+
Dima TПотому что .docx и .xlsx это zip-архивы, можешь сменить расширение и открыть архиватором. А mime type есть не для всех типов файлов. Например application/octet-stream это двоичный файл без указания формата, а не doc. Надо не mime type смотреть, а сигнатуры искать, т.е. проверять содержимое файла на соответствие всем нужным форматам. С .docx и .xlsx это первые символы "PK" (сигнатура zip архива), затем извлекать оттуда [Content_Types].xml и смотреть его. Все оказалось сложнее чем я думал. Можете хотя бы ссылку бросить на пример? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 14:20 |
|
c# Определить тип файла из byte[]
|
|||
---|---|---|---|
#18+
NechtoМожете хотя бы ссылку бросить на пример? Ссылок нет. Да и не просто там все. Для каждого типа надо писать свой анализатор. Может с другой стороны подойти - передавать расширение дополнительно, чтобы потом не мучится с его эвристическим угадыванием? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 14:32 |
|
c# Определить тип файла из byte[]
|
|||
---|---|---|---|
#18+
NechtoDima TПотому что .docx и .xlsx это zip-архивы, можешь сменить расширение и открыть архиватором. А mime type есть не для всех типов файлов. Например application/octet-stream это двоичный файл без указания формата, а не doc. Надо не mime type смотреть, а сигнатуры искать, т.е. проверять содержимое файла на соответствие всем нужным форматам. С .docx и .xlsx это первые символы "PK" (сигнатура zip архива), затем извлекать оттуда [Content_Types].xml и смотреть его. Все оказалось сложнее чем я думал. Можете хотя бы ссылку бросить на пример? Да похоже лучше так и сделать. Я просто считал что задача не сложная. Думал буду брать из базы файл (byte[]), и на лету определять его тип. А оказалось сложнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2016, 14:42 |
|
|
start [/forum/topic.php?fid=20&msg=39282720&tid=1400440]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 147ms |
0 / 0 |