HttpClient + FileUpload, как загрузить файл из сервлета в мое приложение?

Я смотрел фрагменты загрузки, которые используют HttpClient и FileUpload. Но я не смог найти ни одного фрагмента, который демонстрировал загрузку HttpClient+FileUpload :( Если вы знаете ссылки или даже некоторые демонстрационные проекты, поделитесь, пожалуйста

Очень ценны полезные комментарии :)

Андрей


person user592704    schedule 17.03.2011    source источник


Ответы (1)


В веб-контексте вы можете использовать ServletOutputStream. Здесь информация о пути к ресурсу передается как дополнительная информация о пути в HTTP.

final ServletOutputStream out = res.getOutputStream();
res.setContentType("application/octet-stream");
String file = req.getPathInfo();
if (file == null) {
  out.println("Extra path info was null; should be a resource to view");
  return;
}

// Convert the resource to a URL
URL url = getServletContext().getResource(file);
if (url == null) { 
  out.println("Resource " + file + " not found");
  return;
}

//Serve the file
InputStream in = url.openStream();
byte[] buf = new byte[4 * 1024]; // 4K buffer
int bytesRead;
while ((bytesRead = in.read(buf)) != -1) {
  out.write(buf, 0, bytesRead);
}
person Piyush Mattoo    schedule 17.03.2011
comment
Выводится ли этот файл неограниченной длины? И в соответствии с данным сниппетом, какой тогда должен быть клиентский сниппет? - person user592704; 17.03.2011