Avatar
0
Khoi Nguyen Beginner
Khoi Nguyen Beginner
Upload ảnh và xử lí ảnh
Em đang làm 1 chức năng là upload avatar lên web bằng java nhưng không biết lưu như thế nào. Anh chị có thể chỉ cho em cách lưu được không ạ
  • Answer
Remain: 5
2 Answers
Avatar
tvd12 Beginner
tvd12 Beginner
Em có thể nói cụ thể hơn là em đang dùng framework nào không em?
  • 0
  • Reply
Em dùng java web glashfish jdk8 chỉ dùng servlet thuần thôi ạ. Kết nối với mysq ạ  –  Khoi Nguyen 1654297923000
Avatar
tvd12 Beginner
tvd12 Beginner
Em có thể tham khảo code này nhé:

// HttpServletRequest request
Part part = request.getPart("file");
String fileName = part.getSubmittedFileName();
File file = new File("files/" + fileName);
InputStream inputStream = part.getInputStream();
byte[] buffer = new byte[1024];
try (OutputStream outputStream = new FileOutputStream(file)) {
    while (true) {
        int read = inputStream.read(buffer);
        if (read > 0) {
            outputStream.write(buffer, 0, read);
        } else {
            break;
        }
    }
}
  • 0
  • Reply
vâng ạ, e cảm ơn. A ơi có nên lưu base64 vào db không ạ  –  Khoi Nguyen 1654302071000
Không nên em ạ, bởi vì để biến byte array thành base64 và ngược lại sẽ bị chậm, thêm nữa nếu làm vậy dữ liệu sẽ phải lưu buffer trên mem rồi mới đọc ghi xuống db được, đối với những file lớn có thể tràn bộ nhớ. Việc đọc ghi DB cũng chậm do phải thông qua network, vậy tốt nhất là lưu ở máy cần download file, nếu là hệ thống lớn thì tổ chức thành cdn như amazone s3 em ạ.  –  tvd12 1654306892000