|
|
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
есть сервлет Download по параметру id он находит имя(filename) и путь к файлу, открывает и передает его содержимое в response.getOutputStream(), на клиенте при выборе "Сохранить" по умолчанию используется имя "Download.ru", как сделать чтобы использовалось filename ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 15:41:16 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
способ, который будет работать всегда, независимо от браузера: мапишь сервлет на /download/*.jpg в сервлете вырезаешь из request.getRequestURL() ид с помощью регекспа например, получаешь имя. далее редиректишь на /download/id/filename.jpg, опять получаешь id (теперь уже другой регексп соответственно), и выдаешь поток байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2006, 15:59:04 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
к сожалению не понимаю. какую инф. я должен получить из request.getRequestURL() ? id я могу получить так request.getParameter("id") получить путь и имя файла отрыть его и выдать поток быйт проблем нет. файл может быть любого типа(расширения) doc, xls, rtf, txt, zip ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2006, 15:25:08 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
этот способ подразумевает, что id передается как часть адреса, а не параметром. например, первый запрос: /download/12345.jpg, редирект на: /download/12345/picture.jpg тогда браузер предложит сохранить объект как picture.jpg ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2006, 15:32:54 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
daniiна клиенте при выборе "Сохранить" по умолчанию используется имя "Download.ru", как сделать чтобы использовалось filename Я делаю что-то вроде этого: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2006, 15:40:14 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
Denis Popov Я делаю что-то вроде этого: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. вот вот. именно такой код я и предложил избежать. он конечно тоже рабочеспособный, но имхо менее универсальный, чем мой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2006, 15:56:31 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
к сожалению первы вариат так и не понял, система может содержать тысячи файлов, это что мне надо каждый раз копировать файл в контекст и выдавать оттуда? такой вариант неприемлем, к сожалению.. мб я не понимаю? второй вариант как раз то что искал, работает корректно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2006, 16:03:34 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
to Deady, хочу понять твой вариант, объясни пожалуйста. описываю все по пунктам есть компьтер установлен tomcat в d:\tomcat web приложение размещено в d:\tomcat\webapps\Root файлы (которые загружает web клиент) лежат в c:\files использование твоего варианта означает ли что напр., файл picture.jpg должен храниться в d:\tomcat\webapps\Root\12345 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2006, 09:52:12 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
danii использование твоего варианта означает ли что напр., файл picture.jpg должен храниться в d:\tomcat\webapps\Root\12345 неть... это означает, что ссылка для скачивания будет иметь такую uri Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2006, 10:10:05 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
ок те физически его там нет. в web.xml я делаю <servlet-mapping> <servlet-name>ru.mydomain.mypackage.MyClass</servlet-name> <url-pattern>/Download/*</url-pattern> </servlet-mapping> а в сервлете пишу String filename="file1.tgz"; response.sendRedirect("/Download/"+filename); томкат выдает ошибку The requested resource (/Download/file1.tgz) is not available в чем тогда ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2006, 10:27:21 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
а если зайти на http://localhost:8080/Download/qwerty сервлет вообще вызывается? нет ли еще каких-нибудь сервлетов, замапенных на tgz? фишка в том, чтобы при любом обращении к любому адресу, начинающемуся с http://localhost:8080/Download/ вызывался сервлет. The requested resource (/Download/file1.tgz) is not available - это 404 чтоли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2006, 10:43:12 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
http://localhost:8080/Download/qwerty дает тот же результат да ошибка 404 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2006, 10:50:49 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
приведи весь web.xml проект лежит в /webapps/ROOT? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2006, 10:53:26 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 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. проект лежит в /gaf1 это сервлет Код: plaintext 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. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2006, 11:06:57 |
|
||
|
Сервлет и имя файла
|
|||
|---|---|---|---|
|
#18+
1. обращаться к сервлету соответственно надо http://localhost:8080/gaf1/DnLwD/id 2. логика сервлета неправильная. нужно 2 обращения. пример. пусть есть файл /var/common/image.gif, доступен он должен быть по ID=1. первое, когда идет первоначальный запрос файла с указанным ID: http://localhost:8080/gaf1/DnLwD/getfile?id=1 Сервлет в этом случае видит, что параметром передан идентификатор, он сразу же должен сделать редирект на /gaf1/DnLwD/1/image.gif (заметь, в урле указан контекст, в котором лежит проект - gaf1, каталог, на который замапен сервлет, идентификатор файла, имя файла): Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2006, 11:29:25 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34075902&tid=2147716]: |
0ms |
get settings: |
9ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
475ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 830ms |

| 0 / 0 |
