|
|
|
Exception при работе с commons-fileupload 1.1
|
|||
|---|---|---|---|
|
#18+
Ребята, такая проблема: надо позволить юзеру аплоадить файл на мой сервер. Поискал по форуму, везде линки на commons-fileupload-1.1.jar. Скачал я его, подключил в JBuilder'e как библиотеку в свойствах проекта, скомпилил, компилится без ошибок, разве что с варнингами о том, что все ф-ции этой библиотеки deprecated. Не пойму почему, версия, вроде, последняя... Решил проверить аплоад по примеру, который нашёл в нете(код сервлета ниже прилагается). Но при переходе на этот сервлет вылазит exception(тоже показан ниже). Не подскажете, что я делаю не так? Может, неверно подключил библиотеку? Т.к. я пытался и через свойства JDK её подключить, скопировав в jre/lib/ext/ и прописав в свойствах ждк в жбилдере. Знающие люди, подскажите, что я неверно делаю, может, кто сталкивался... Спасибо огромное заранее. P.S.: Код странички, с которой перехожу на сервлет: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код сервлета: Код: 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. 97. 98. 99. Exception: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 21:48 |
|
||
|
Exception при работе с commons-fileupload 1.1
|
|||
|---|---|---|---|
|
#18+
Уберите taskID = Integer.parseInt(request.getParameter("taskID")); до вызова upload.parseRequest(request); Вы его так не достанете - его доставать надо будет тоже из items. Во-вторых, непонятно, чего это он ищет org/apache/commons/io/output/DeferredFileOutputStream В моем fileupload это класс org/apache/commons/fileupload/DeferredFileOutputStream Скачайте, что ли, fileupload посвежее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 23:22 |
|
||
|
Exception при работе с commons-fileupload 1.1
|
|||
|---|---|---|---|
|
#18+
Ещё нужно скачать commons-io , без него не будет работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 10:10 |
|
||
|
Exception при работе с commons-fileupload 1.1
|
|||
|---|---|---|---|
|
#18+
М.ГоловановУберите taskID = Integer.parseInt(request.getParameter("taskID")); до вызова upload.parseRequest(request); Вы его так не достанете - его доставать надо будет тоже из items. Ок, понимаю, уберу, спасибо за совет. И постараюсь разобраться с тем, как достать аргумент из item'ов. Doc'и от fileupload я интегрировал в JBuilder. М.ГоловановВо-вторых, непонятно, чего это он ищет org/apache/commons/io/output/DeferredFileOutputStream В моем fileupload это класс org/apache/commons/fileupload/DeferredFileOutputStream Скачайте, что ли, fileupload посвежее... Дело в том, что скачал его только вчера. И на jakart'e было написано, что 1.1 - самая свежая версия... Вот я её и скачал. И такая трабла... Кстати, сегодня, вот, пришёл на работу, скачал по совету mozheyko_d commons-io-1.1.jar (спасибо за линк, кстати), прописал его в свойствах проекта, запустил - всё работает. НО потом выкинул из свойств проекта эту библиотеку, пересобрал и всё равно всё работает. Даже после перезапуска tomcat'a. Чудеса, да и только... Надеюсь, у меня полчится запихнуть полученный файл в MS SQL 2000... :) Если нет - обязательно напишу на этом форуме. Остался ещё один вопрос: почему JBuilder при компиляции выдаёт warnings о том, что ф-ция класса FileUpload isMultipartContent, а также сaм класс DiskFileUpload являются deprecated, т.е. уже нежелательными к использованию. Что же тогда использовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 10:57 |
|
||
|
Exception при работе с commons-fileupload 1.1
|
|||
|---|---|---|---|
|
#18+
А зачем вообще этот код: Код: plaintext 1. 2. 3. 4. Только чтобы полюбоваться на isMultipart?... Выкиньте, и все дела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 11:15 |
|
||
|
Exception при работе с commons-fileupload 1.1
|
|||
|---|---|---|---|
|
#18+
М.ГоловановА зачем вообще этот код: Код: plaintext 1. 2. 3. 4. Только чтобы полюбоваться на isMultipart?... Выкиньте, и все дела. Это из примера, конечно, мне он не нужен. Выкинул, но deprecated остались: Код: plaintext 1. 2. 3. 4. DiskFileUpload и upload.parseRequest - пишет, что deprecated. Но всё работает. стоит ли мне закрыть на это глаза? Или же действительно надо использовать функции поновее? Какие в таком случае? И ещё один вопрос, думаю, заключительный :) Я прочитал как вывести картинку в ответе, в браузере. Код выглядит так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Как закинуть её в базу - тоже примерно ясно. Надо будет использовать setBinaryStream класса CallableStatement. С получением картинки из базы тоже проблем не возникнет. Но как показать её в браузере вместе с остальным содержанием странички? Записывать временно на диск, и прописывать в теге IMG? Просто я ни разу такого не делал, хотелось бы знать оптимальный вариант сего деяния. Спасибо огромное за столь быстрые ответы, за помощь, которая реально помогла! Приятно осознавать, что есть знающие ребята, которые всега помогут :) Спасибо ещё раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 11:32 |
|
||
|
Exception при работе с commons-fileupload 1.1
|
|||
|---|---|---|---|
|
#18+
Просто сохрани картинку на жесткий диск, где то в пределах домашней директории сайта (т. е. не в БД). А в БД храни путь к картинке или ее имя (папка куда ее сохранил и так известна). В тэг IMG указываешь относительный путь, заданый от домашней директории. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 11:37 |
|
||
|
Exception при работе с commons-fileupload 1.1
|
|||
|---|---|---|---|
|
#18+
KachalovПросто сохрани картинку на жесткий диск, где то в пределах домашней директории сайта (т. е. не в БД). А в БД храни путь к картинке или ее имя (папка куда ее сохранил и так известна). В тэг IMG указываешь относительный путь, заданый от домашней директории. Да, так бы подошло, но не для себя делаю... Дело в том, что картинки должны храниться менно в БД. В этом нет проблем, в MS SQL есть подходящий тип данных и запихнуть туда картинку не составит проблем. Но, чувствую, для того, чтобы её показывать, таки есть единственный способ: создавать временный файл на диске, а потом удалять... И в страничке ответа генерировать тэг IMG с путём ко временному файлу. Спасибо за ответ, уважаемый Kachalov . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 11:57 |
|
||
|
Exception при работе с commons-fileupload 1.1
|
|||
|---|---|---|---|
|
#18+
Можно написать сервлет, который читает картинку из базы и отправляет ее в поток вывода сервлета, формируя при этом необходимый Content-Type, например: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 15:40 |
|
||
|
Exception при работе с commons-fileupload 1.1
|
|||
|---|---|---|---|
|
#18+
KachalovМожно написать сервлет, который читает картинку из базы и отправляет ее в поток вывода сервлета, формируя при этом необходимый Content-Type, например: Код: plaintext 1. А если мне, кроме картинки нужно ещё кучу информации вывести? Таблицы, текст и т.д.? Как вывести только картинку, я разобрался, действительно, можно так и сделать, как Вы пишете, я выше приводил код, но это будет страничка с одной картинкой. А мне надо несколько картинок, с описанием и т.д. Так что, пока вижу один вход - временно сохранять плюс IMG в ответе с ссылкой на временную картинку. Других вариантов нет? Всмысле, обычно так и делают? Я просто впервые этим занимаюсь... Стандартный алгоритм есть? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 16:04 |
|
||
|
Exception при работе с commons-fileupload 1.1
|
|||
|---|---|---|---|
|
#18+
<IMG src="URI_вашего_сервлета_который_выдает_картинку"> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2006, 17:51 |
|
||
|
|

start [/forum/search_topic.php?author=AndreyG_80&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 692ms |
| total: | 812ms |

| 0 / 0 |
