| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > загрузка файла в БД |
| Автор: Swatch 9.4.2008, 13:35 |
| Добрый день. Подскажите, пожалуйста, как с помощью JSP, Struts добавить файл в базу данных??? я знаю саму реализацию сохранения файла, но умею делать это для обычного приложения, а не для вэб. И с трудом представляю, как на вэб страничке, нажав на кнопку выбрать файл с компа и куда вписывать сохранение.... |
| Автор: almostlost 9.4.2008, 16:27 | ||||
| файл нельзя сохранить в базу данных. Вы можете сохранить сайл на сервере, а через базу данных получать ссылку на этот файл. Принцип сохранения файла немного другой чем в обычном приложении. Вопервых, Вам следует использовать что-то типа этой формы:
при нажатии на кнопку "send" сервлет upload должен принимять поток. Часть сервлета описана тут:
почитайте мануал о библиотеке FileUpload. http://jakarta.apache.org/commons/fileupload/ удачи! |
| Автор: Swatch 10.4.2008, 09:13 | ||||
| так, с самой формой все понятно... относительно сервлета... я использую стратс, у меня есть 2 класика: AddForm и AddAction. AddForm
AddAction
не понимаю я так и, как сервлет переделать под свой AddAction. как все-таки AddAction правильно должен выглядеть? Добавлено через 3 минуты и 21 секунду да, и все-таки еще, как указать путь к подкаталогу программы, чтобы туда сохранялись файлы? |
| Автор: Llucas 10.4.2008, 09:23 | ||||
А почему это нельзя сохранить файл в БД?
|
| Автор: Swatch 10.4.2008, 10:34 |
| я тоже не совсем поняла, почему нельзя сохранять файл в базу.... однако, волнует не это... почему у меня не находится файл и как сделать так, чтоб находился??? |
| Автор: KostenkoSergey 10.4.2008, 10:41 | ||
| Как сказал almostlost, загрузить файл на сервер можно используя org.apache.commons.fileupload В конечном счёте, в сервлете у тебя будет просто поток байт:
Его то через обычный jdbc и можно залить в СУБД. Често говоря, я не вижу надобности и смысла сохранять загруженный файл вначале на файловой системе, а потом отдуда заливать в базу. зы. или я чёт не так допонял ? |
| Автор: Swatch 10.4.2008, 11:43 |
| а что еще за item.get();??? что это, откуда взялось и где его использовать??? а сохранять надо и туда, и туда... |
| Автор: Swatch 10.4.2008, 12:57 |
| Возник еще один вопрос: а в стратс-конфиг надо что-то записывать??? что? ведь если туда ничего не записать, то по нажатию на кнопку, по которой должна происходить загрузка файла, будет совершена попытка перейти по адресу http://localhost:8080/upload !!! а такого адреса нет:( Добавлено через 2 минуты и 52 секунды Спасибо, я уже тоже что-то подобное сделала |
| Автор: Swatch 11.4.2008, 14:12 | ||||||
написала так
jsp-файл:
но теперь вылетает с ошибкой:
ЧТО ДЕЛАТЬ??? |
| Автор: Kangaroo 11.4.2008, 14:23 | ||
Зачем у тебя две формы? Убери внешнюю. |
| Автор: Swatch 11.4.2008, 14:31 | ||
если убрать, то пишет:
|
| Автор: Kangaroo 11.4.2008, 14:35 | ||
Тип должен быть byte[], а у тебя какой? |
| Автор: Swatch 11.4.2008, 14:47 | ||
вот UploadForm:
пытаюсь добавить обычный *.txt-файл.... |
| Автор: shoura 6.5.2008, 13:15 |
| Интересно зачем вообще в бине UploadForm get/setFile() если по факту он в Action-е не используется? Мало того, с помощью бина удастся получить только название файла ибо в параметры кладется только оно. Байтовый поток идет отдельной частью в запросе, собственно поэтому и multipart... Поэтому правильный тип - String |
| Автор: breath 2.6.2008, 15:28 | ||||||
| Народ помогите решить проблему. Есть сервлет такого вида:
при запуске на IBM WASCE 2.0 получается следующий иксепшн:
и в консоли пишет такое:
Пожалуйста помогите разобраться - срочно нужно. Заранее спасибо. |
| Автор: Maksym 2.6.2008, 16:33 |
| breath Похоже http://commons.apache.org/io/ не хватает... |
| Автор: breath 2.6.2008, 16:41 |
| Залил библиотечку на сервер, но ошибка та же. |
| Автор: breath 2.6.2008, 17:31 |
| Вопрос: можно ли как-то забирать файлы в байтовый массив не используя библиотеку FileUpload? |
| Автор: Maksym 2.6.2008, 17:56 |
Не туда залил. Где она у тебя сейчас?... переложи в lib приложения |
| Автор: breath 2.6.2008, 18:24 |
| Спасибо! Заработало! Подскажи пожалуйста, как получить тело файла в виде массива байтов? Еще вопрос: есть ли какие-то доки на русском по FileUpload? На буржуйском конечно тоже нормально, но на родном все же легче воспринимается... |
| Автор: Maksym 2.6.2008, 18:54 | ||
http://java.sun.com/j2se/1.5.0/docs/api/java/io/FileInputStream.html |
| Автор: breath 2.6.2008, 19:34 |
| Спасибо еще раз - все получилось! |
| Автор: Maksym 2.6.2008, 21:48 |
| breath Не вопрос |