powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать так чтобы изображения хранились на жестком диске С
17 сообщений из 17, страница 1 из 1
Как сделать так чтобы изображения хранились на жестком диске С
    #39786379
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Они у меня хранятся в самом приложении (web/images)
А я хочу чтобы они хранились допустим - (Диск С/Pictures.....)

Код: java
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.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package servlet;

import dao.DatabaseDAO;
import entity.Student;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;


@MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB
        maxFileSize = 1024 * 1024 * 10, // 10MB
        maxRequestSize = 1024 * 1024 * 50)   // 50MB
public class AddStudentServlet extends HttpServlet {

    /**
     * Name of the directory where uploaded files will be saved, relative to the
     * web application directory.
     */
    private static final String SAVE_DIR = "images";

    private DatabaseDAO dao;

    @Override
    public void init() throws ServletException {
        dao = new DatabaseDAO();
    }

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        // gets absolute path of the web application
        String appPath = request.getServletContext().getRealPath("");

        // constructs path of the directory to save uploaded file
        String savePath = appPath + SAVE_DIR;

        // creates the save directory if it does not exists
        File fileSaveDir = new File(savePath);
        if (!fileSaveDir.exists()) {
            fileSaveDir.mkdir();
        }

        String name = request.getParameter("name");
        String surname = request.getParameter("surname");
        String fileName;

        for (Part part : request.getParts()) {
            String contentDisp = part.getHeader("content-disposition");
            String[] items = contentDisp.split(";");
            for (String item : items) {
                String ss = item.trim();
                if (ss.startsWith("filename")) {
                    try {
                        int id = dao.insertStudentIntoDB(name, surname);
                        fileName = String.valueOf(id);
                        part.write(savePath + File.separator + fileName);
                        request.setAttribute("message", "Студент добавлен.");
                    } catch (IOException e) {
                        request.setAttribute("message", "Ошибка при добавлении студента!");
                    }
                }
            }
        }

        List<Student> students = dao.readAllStudentsFromDB();
        request.setAttribute("students", students);
        request.getRequestDispatcher("ShowAllStudent.jsp").forward(request, response);
    }

    private String extractName(String s) {
        return s.substring(s.indexOf("=") + 2, s.length() - 1);
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
}



Код: java
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.
package servlet;

import dao.DatabaseDAO;
import entity.Student;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

import static java.lang.Integer.parseInt;

import java.util.List;

public class MyServlet extends HttpServlet {

    private DatabaseDAO dao;

    @Override
    public void init() throws ServletException {
        dao = new DatabaseDAO();
    }

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String action = request.getParameter("actionname");

        if (action.equals("RemoveStudent")) {
            int id = parseInt(request.getParameter("id"));
            boolean deleted = dao.deleteStudentFromDB(id);

            String message;
            if (deleted) {
                message = "Студент удален.";
            } else {
                message = "Студент не существует";
            }
            request.setAttribute("message", message);

            List<Student> students = dao.readAllStudentsFromDB();
            request.setAttribute("students", students);

            request.getRequestDispatcher("ShowAllStudent.jsp").forward(request, response);
        }

        if (action.equals("ShowAllStudent")) {
            List<Student> students = dao.readAllStudentsFromDB();
            request.setAttribute("students", students);
            request.getRequestDispatcher("ShowAllStudent.jsp").forward(request, response);
        }
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        processRequest(request, response);
    }
}
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786384
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: java
1.
String appPath = "C:\\pictures"


не так?
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786387
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще пару вариантов:

Код: java
1.
File file = new File("Z:\\results\\results.txt");



Код: java
1.
2.
3.
4.
5.
6.
7.
String dirName = /* something to pull specified dir from input */;

String fileName = "test.txt";
File dir = new File (dirName);
File actualFile = new File (dir, fileName);

/* rest is the same */
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786391
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qi_ip,

Можете в моем коде это дописать я ваш код добавил но там ошибка у меня может не так пишу
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786411
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В конечном итоге, у вас должен быть путь:

Код: java
1.
String savePath = "C:\\pictures";
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786413
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А еще может быть ошибка из-за того, что винда не дает сохранить файл из Java именно на диске С, где находится система. Попробуйте сначала в другое место сохранить, например, на диск D
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786417
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qi_ip,
Я вот так написала, но там в той папке. Он хранит файл названная айди студента.
Код: java
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.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package servlet;

import dao.DatabaseDAO;
import entity.Student;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;


@MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB
        maxFileSize = 1024 * 1024 * 10, // 10MB
        maxRequestSize = 1024 * 1024 * 50)   // 50MB
public class AddStudentServlet extends HttpServlet {

    /**
     * Name of the directory where uploaded files will be saved, relative to the
     * web application directory.
     */
    private static final String SAVE_DIR = "images";

    private DatabaseDAO dao;

    @Override
    public void init() throws ServletException {
        dao = new DatabaseDAO();
    }

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        // gets absolute path of the web application
        String appPath = request.getServletContext().getRealPath("");

        // constructs path of the directory to save uploaded file
        
        
         String savePath = "C:/Pictures";
         File fileSaveDir = new File(savePath); {
                
            }
         if (!fileSaveDir.exists()) { fileSaveDir.mkdirs(); }

        // creates the save directory if it does not exists
        

        String name = request.getParameter("name");
        String surname = request.getParameter("surname");
        String fileName;

        for (Part part : request.getParts()) {
            String contentDisp = part.getHeader("content-disposition");
            String[] items = contentDisp.split(";");
            for (String item : items) {
                String ss = item.trim();
                if (ss.startsWith("filename")) {
                    try {
                        int id = dao.insertStudentIntoDB(name, surname);
                        fileName = String.valueOf(id);
                        part.write(savePath + File.separator + fileName);
                        request.setAttribute("message", "Студент добавлен.");
                    } catch (IOException e) {
                        request.setAttribute("message", "Ошибка при добавлении студента!");
                    }
                }
            }
        }

        List<Student> students = dao.readAllStudentsFromDB();
        request.setAttribute("students", students);
        request.getRequestDispatcher("ShowAllStudent.jsp").forward(request, response);
    }

    private String extractName(String s) {
        return s.substring(s.indexOf("=") + 2, s.length() - 1);
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
}
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786420
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nastyaa,

ну правильно, вы же сами задаете это

Код: java
1.
2.
3.
int id = dao.insertStudentIntoDB(name, surname); - тут получает ID студента после инсерта в БД
fileName = String.valueOf(id);                            - тут присваиваете filename этот ID
part.write(savePath + File.separator + fileName);  - тут сохраняете в вашу папку файл с ID студента


я не совсем увидел, откуда Вы вообще изображение получаете.
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786426
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qi_ip,

Изображение из любой папки получаю, но как можно сделать так чтобы чисто изображение у меня сохранялось в той папке.
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786437
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nastyaa,

Вам нужно взять это изображение и передать типа вот так:

Код: java
1.
2.
3.
4.
5.
6.
BufferedImage bImage = null;
File initialImage = new File("C://Users/Rou/Desktop/image.jpg");
bImage = ImageIO.read(initialImage); - тут записываете нужное вам изображение в буфер

-- а тут считываете из буфера и записываете в файл
ImageIO.write(bImage, "gif", new File("C://Pictures/image.gif")); ИЛИ ImageIO.write(bImage, "jpg", new File("C://Pictures/image.png")); ИЛИ ImageIO.write(bImage, "bmp", new File("C://Pictures/image.bmp"));
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786442
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qi_ip,

Можете в моем коде это добавить, боюсь что то не так сделать. Пожалуйста
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786450
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nastyaa, вряд ли, потому что я не вижу в какой момент и откуда должно появиться изображение, чтобы его передать в буфер.
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786457
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qi_ip,

Мой DAO
Код: java
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.
package dao;

import entity.Student;

import java.sql.*;
import java.time.LocalDate;
import java.util.ArrayList;

public class DatabaseDAO {

    private static final String URL = "jdbc:mysql://localhost:3306/school_db_newnew?useTimezone=true&serverTimezone=GMT";
    private static final String USER = "root";
    private static final String PASSWORD = "123456";

    private static final String GET_ALL_STUDENTS_QUERY
            = "SELECT * FROM student;";

    private static final String INSERT_STUDENT_QUERY
            = "INSERT INTO student (name, surname) VALUES(?,?);";

    public static final String DELETE_STUDENT_QUERY = "DELETE FROM student WHERE id = ?;";

    private Connection conn;

    public DatabaseDAO() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(URL, USER, PASSWORD);
        } catch (SQLException | ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

    public ArrayList<Student> readAllStudentsFromDB() {
        ArrayList<Student> result = new ArrayList<>();

        try (PreparedStatement stmt = conn.prepareStatement(GET_ALL_STUDENTS_QUERY)) {
            ResultSet rs = stmt.executeQuery();
            while (rs.next()) {
                int id = rs.getInt("id");
                String firstName = rs.getString("name");
                String lastName = rs.getString("surname");
                String patron = rs.getString("patron");
                Date date = rs.getDate("birthday");
                LocalDate birthday = null;
                if (date != null) {
                    birthday = date.toLocalDate();
                }
                String image = rs.getString("image");
                Student student = new Student(firstName, lastName, patron, birthday);
                student.setId(id);
                student.setImage(image);
                result.add(student);
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }

        return result;
    }

    public int insertStudentIntoDB(String name, String surname) {
        try (PreparedStatement stmt
                = conn.prepareStatement(INSERT_STUDENT_QUERY, Statement.RETURN_GENERATED_KEYS)) {

            stmt.setString(1, name);
            stmt.setString(2, surname);

            stmt.executeUpdate();
            ResultSet keys = stmt.getGeneratedKeys();
            if (keys.next()) {
                return keys.getInt(1);
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        return -1;
    }

    public boolean deleteStudentFromDB(int id) {
        try (PreparedStatement stmt = conn.prepareStatement(DELETE_STUDENT_QUERY)) {
            stmt.setInt(1, id);
            int rowsDeleted = stmt.executeUpdate();
            return rowsDeleted > 0;
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}



Student
Код: java
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.
package entity;

import java.time.LocalDate;
import java.util.ArrayList;

public class Student {

    private int id;
    private String name, surname, patron;
    private LocalDate birthDate;
    private String image;
    private ArrayList<Grade> grades;

    public Student(String name, String surname, String patron, LocalDate birthDate) {
        this.name = name;
        this.surname = surname;
        this.patron = patron;
        this.birthDate = birthDate;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public String getSurname() {
        return surname;
    }

    public String getPatron() {
        return patron;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getShortName() {
        return surname + " " + name.charAt(0) + "." + (patron == null ? "" : " " + patron.charAt(0) + ".");
    }

    public LocalDate getBirthDate() {
        return birthDate;
    }

    @Override
    public String toString() {
        return getShortName();
    }
}
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786459
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настий,

Задавать строковые константы непосредстенно в Java-коде некультурно:
Код: java
1.
String savePath = "C:/Pictures";



ознакомьтесь с классами ServletConfig и ServletContext, с помощью которых можно получать в сервлете ресурс (например, строковое значение или файл) по имени ресурса.
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786508
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nastyaa,

вот в этом блоке Вы делаете сохранение файла, но лично мне не понятно/ не видно, как в этом блоке должно появиться изображение. Не понятно ОТКУДА он должно взяться, чтобы считать в буфер и сохранить на диск

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
for (Part part : request.getParts()) {
            String contentDisp = part.getHeader("content-disposition");
            String[] items = contentDisp.split(";");
            for (String item : items) {
                String ss = item.trim();
                if (ss.startsWith("filename")) {
                    try {
                        int id = dao.insertStudentIntoDB(name, surname);
                        fileName = String.valueOf(id);
                        part.write(savePath + File.separator + fileName);
                        request.setAttribute("message", "Студент добавлен.");
                    } catch (IOException e) {
                        request.setAttribute("message", "Ошибка при добавлении студента!");
                    }
                }
            }
        }
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786518
nastyaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qi_ip,
Мои JSP формы
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
      <div class="addstudent">
                <h1>Add Student</h1>
                <form action="AddStudent" method="Post" enctype="multipart/form-data">
                    name : <input type="text" name="name"><br><br>
                    surname : <input type="text" name="surname"><br><br>
                    image: <input name="data" type="file" accept="image/*"><br>
                    <input type="submit" value="Send"><br>
                </form>
            </div>
        </div>
    </body>
</html>
...
Рейтинг: 0 / 0
Как сделать так чтобы изображения хранились на жестком диске С
    #39786797
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nastyaaОни у меня хранятся в самом приложении (web/images)
А я хочу чтобы они хранились допустим - (Диск С/Pictures.....)тут вопрос поставлен не правильно
java может хранить где угодно. но вот чтобы отображать картинки в браузере - картинки должны быть в папке web.
правильный вопрос - как получить картинки из файловой систему используя тэг src?
вот тут ответ для tomcat/ 17269327
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать так чтобы изображения хранились на жестком диске С
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]