Tình trạng hiện tại của tôi là: Tôi phải đọc tệp và đưa nội dung vào InputStream
. Sau đó, tôi cần đặt nội dung của InputStream
vào một mảng byte yêu cầu (theo như tôi biết) kích thước của InputStream
. Bất kỳ ý tưởng?Xác định kích thước của InputStream
Theo yêu cầu, tôi sẽ hiển thị các dòng đầu vào mà tôi đang tạo ra từ một tập tin được tải lên
InputStream uploadedStream = null;
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
java.util.List items = upload.parseRequest(request);
java.util.Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
uploadedStream = item.getInputStream();
//CHANGE uploadedStreambyte = item.get()
}
}
Yêu cầu là một đối tượng HttpServletRequest
, mà cũng giống như FileItemFactory
và ServletFileUpload
là từ gói Apache Commons FileUpload.
Tôi hiện đang lưu tệp vào trường blob trong cơ sở dữ liệu và tôi gửi nó dưới dạng nhị phân (đầu vào làm đầu vào), bây giờ tôi yêu cầu inputstream trong mảng byte vì tôi cần tạo chữ ký dữ liệu và hàm chỉ mất mảng byte. – ChronoXIII
item.get() lưới bạn mảng byte, như tôi đã đề cập. Và đừng lo lắng về hiệu suất một kích thước trừ khi bạn đang làm việc với một số hình ảnh MB. – akarnokd
Đó có thể là trường hợp do hình ảnh được tải lên bởi người dùng và tôi dường như không thể tìm cách tự động cắt hình ảnh ở phía máy chủ. :( – ChronoXIII