티스토리 뷰
오늘은 파일 업로드 다운로드에 대한 자바 소스에 대한 글을 남겨볼까 합니다.
늘어렵게만 느꼈던 파일 업로드 그리고 다운로드~!! 막상 해 보니 그리 어렵지 않더군요~!!
업로드는 Apache 프로젝트인 fileupload를 이용하여 업로드를 하였습니다. jar 파일을 받아서 import 하면 되니까 엄청 편하더라구요~!! 아래 소스도 예제도 친절하게 다 나와 있고, 정말 좋은 것 같습니다. ^^
아래 URL 확인하시면 됩니다.
http://commons.apache.org/proper/commons-fileupload/using.html
아래 소스는 파일 업로드 샘플 예제이구요~!!
public void upload(HttpServletRequest request) throws Exception {
// Check that we have a file upload
request HashMap dataMap = new HashMap(); File tempFile = null; If(!isMultipart) { throw new Exception(“Form type is not multipart”); } // Create a factory for disk-based file items
//
Process the uploaded items String fieldName = item.getFieldName();
if (item.isFormField()) { // processFormField dataMap.put(fieldName, item.getString()); } else { if( item.getSize() > 0) tempFile = item; } }
// Create file object for upload File uploadFile = new File(savePath + "/" + saveFileName);
// Save file object if(tempFile.getSize() > 0) { tempFile.write(uploadFile); tempFile.delete(); } } |
이건 덤으로 다운로드 샘플 예제입니다. 다운로드는 그냥 InputStream을 OutputStream으로 써주는 가장 일반적인 구현방법입니다. 대부분의 다운로드 구현이 아래 방식을 사용하더군요~!!
public HttpServletResponse download(HttpServletResponse response, String filePath) throws Exception { File downfile = new File(filePath);
if(!downfile.exists()) { throw new FileNotFoundException(); }
ServletOutputStream outStream = null; FileInputStream inputStream = null;
try { outStream = response.getOutputStream(); inputStream = new FileInputStream(downfile);
//Setting Resqponse Header response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment;filename=\""+downfile.getName()+"\"");
//Writing InputStream to OutputStream byte[] outByte = new byte[4096]; while(inputStream.read(outByte, 0, 4096) != -1) { outStream.write(outByte, 0, 4096); } } catch (Exception e) { throw new IOException(); } finally { inputStream.close(); outStream.flush(); outStream.close(); }
return response; } |
'Java' 카테고리의 다른 글
[Java] File을 String형으로 변환하여 다운로드 받을 때~!! (0) | 2013.09.25 |
---|---|
Windows7에서 Apache2 + Tomcat 연동 (2) | 2013.08.23 |
REST 란? (2) | 2013.07.30 |
OpenStack Swift Client Java Sample로 알아보는 HttpClient (0) | 2012.03.06 |
Apache CXF Restful (0) | 2012.02.08 |
- Total
- Today
- Yesterday
- ubuntu
- install
- Python
- neutron
- 명령어
- OVN
- 오픈쉬프트
- 레드햇
- command
- 뉴트론
- 설치
- 쿠버네티스
- 네트워크
- 세미나
- Network
- 파이썬
- 컨테이너
- 오픈스택
- cpu
- sdn
- 우분투
- openstack
- Redhat
- NOVA
- 클라우드
- 하둡
- 후기
- 김미경
- Java
- Swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |