Сохранение 2 изображений из формы в виде BLOB-объекта или пути в базе данных Mysql с использованием только Java EE (Serlvets и Jsp) - PullRequest
0 голосов
/ 21 февраля 2020

Это настолько запутанная информация о inte rnet и здесь о stackoverflow, что я понятия не имею, что делать и как решить эту проблему.

Я пытаюсь в течение 2 дней найти способ хранить изображения в mysql БД, и большинство из того, что я пробовал, не работает. Я пытался сохранить изображение как байт, я пытался использовать InputStream, а затем FileReader, и я не мог заставить его работать, потому что каждый раз я сталкивался с различными ошибками, которые я не смог решить сам.

Теперь я пытаюсь сохранить его как часть, так как нашел какой-то учебник, но сейчас в этом учебнике используется другой метод сервлета, который я никогда раньше не видел, вызывал processRequest или что-то в этом роде. который, черт возьми, меня смущает. Какой метод проще или лучше? Хранить как Blob или как ссылку? Я хотел бы получить некоторую помощь по выбору метода для его хранения и получить рекомендации по окончанию sh этой задачи.

Это то, что у меня есть до сих пор

<form method="POST" action="AddTripServlet" enctype="multipart/form-data">
    <label for="tripname">Trip name</label>
    <input type="text" name="tripname" id="tripname">
    <br>
    <label for="startdate">Start date</label>
    <input type="date" name="startdate" id="startdate">
    <br>
    <label for="enddate">End date</label>
    <input type="date" name="enddate" id="enddate">
    <br>
    <label for="impressions">Impressions</label>
    <textarea name="impressions" id="impressions" rows="5" cols="30">Add your impressions here</textarea>
    <br>
    <label for="photoone">Add first photo</label>
    <input type="file" id="photoone" name="photoone">
    <br>
    <label for="phototwo">Add second photo</label>
    <input type="file" id="phototwo" name="phototwo">
    <br>
    <label for="location">Location</label>
    <input type="text" id="location" name="location">
    <br><br>
    <input type="SUBMIT" value="Add trip">

    <div id="map">
        <p>Potential google map location if i can implement it</p>
    </div>

</form>
public class AddTripServlet extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        response.setContentType("text/html");
        String name = request.getParameter("tripname");
        String startDate = request.getParameter("startdate");
        String endDate = request.getParameter("enddate");
        String impressions = request.getParameter("impressions");
        Part photoOne = request.getPart("photoone");
        Part photoTwo = request.getPart("phototwo");
        PrintWriter out = response.getWriter();
        out.print("<html><body>" + startDate + "<br><h1>hello</h1>" + endDate + "<br>"+photoOne+"</body></html>"+ name);


    }
}
create table trips(
    trip_id INT NOT NULL AUTO_INCREMENT,
    user_id INT,
    trip_name VARCHAR(255) NOT NULL,
    trip_start_date DATE,
    trip_end_date DATE,
    trip_impressions VARCHAR(255) NOT NULL,
    photo_one mediumblob, 
    photo_two mediumblob,
    trip_location_coordinates VARCHAR(255) NOT NULL,
        primary key(trip_id),
        foreign key(user_id) references users(user_id)
        );

Печатник предназначен для тестового пурпура новления. Помогите мне выбрать лучший и простой метод сохранения файла между ссылками и BLOB-объектами, а также приведите пример кода для этого. Если мой вариант удачный, помогите мне понять, что мне делать дальше, чтобы сохранить файл как Blob в базу данных. Если мой вариант плохой, помогите мне добавить изображения в качестве справочных, дав мне некоторую подсказку.

Я также добавляю свою модель сюда, где у меня есть 2 ссылки на BLOB-объекты, которые я не уверен, верны они или нет что я хочу сделать.

public class Trip {

    private String name;
    private String startDate;
    private String endDate;
    private String impressions;
    private Blob photoOne;
    private Blob photoTwo;
    private String location;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public String getImpressions() {
        return impressions;
    }

    public void setImpressions(String impressions) {
        this.impressions = impressions;
    }

    public Blob getPhotoOne() {
        return photoOne;
    }

    public void setPhotoOne(Blob photoOne) {
        this.photoOne = photoOne;
    }

    public Blob getPhotoTwo() {
        return photoTwo;
    }

    public void setPhotoTwo(Blob photoTwo) {
        this.photoTwo = photoTwo;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...