Upload file trong jsp/servlet

e xem trên mạng có đoạn code này e ko hiểu : sao cái kích thích vị trí tạm lại bé hơn kích thước tối đa của file tải lên @@ thế thì nó sao chứa dc nhỉ ?!

public static void Uploadsinglefile(HttpServletRequest request,
		HttpServletResponse response) throws ServletException, IOException
{
	final String Address = "E:\\";
	final int maxMemorySize = 1024 * 1024 * 3; // 3MB
	final int maxRequestSize = 1024 * 1024 * 50; // 50 MB

	boolean isMultipart = ServletFileUpload.isMultipartContent(request);

	if (!isMultipart)
	{
		request.setAttribute("message", "not have enctypr: multipart/form-data");
	}

	DiskFileItemFactory factory = new DiskFileItemFactory();

	// Set factory constraints
	factory.setSizeThreshold(maxMemorySize);

	factory.setRepository(new File(System.getProperty("java.io.tmpdir")));

	// Create a new file upload handler
	ServletFileUpload upload = new ServletFileUpload(factory);

	// Set overall request size constraint
	upload.setSizeMax(maxRequestSize);
    ......

Chào em, e sử dụng MAX_FILE_SIZE nhé,sau đó dùng getSize() để kiểm tra em nhé!

e muốn hỏi đoạn code trên kia mà @@

có phải factory.setSizeThreshold(maxMemorySize); là set kích thước chỗ nhớ tạm lưu file tải lên

còn upload.setSizeMax(maxRequestSize); là set kích thước file tối đa được upload lên

sao cái kích thước của chỗ lưu lại nhỏ hơn kích thước cái file dc lưu ạ ?

Chào em, factory.setSizeThreshold(maxMemorySize); là đặt một ngưỡng bộ nhớ của tập tin thôi em nhé.
upload.setSizeMax(maxRequestSize); // Đặt kích thước tối đa cho phép (bao gồm tập tin + dữ liệu)
=> Cho nên nó nhỏ hơn là đúng rồi.
Có phải em hỏi trên bài viết của blog của anh phải ko nhỉ ^^

vâng đúng rồi a :smiley:
nhưng cái kia vẫn khó hiểu … :((

factory.setSizeThreshold(maxMemorySize) là e đặt size tối đa chỉ riêng file khi upload .setSizeMax(maxRequestSize) => đặt size tối đa cho cả file và dữ liệu trong form.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?