1 25 26 package com.j2biz.blogunity.web.actions.user; 27 28 import java.io.BufferedInputStream ; 29 import java.io.BufferedOutputStream ; 30 import java.io.IOException ; 31 import java.io.InputStream ; 32 import java.net.FileNameMap ; 33 import java.net.URLConnection ; 34 35 import javax.servlet.http.HttpServletRequest ; 36 import javax.servlet.http.HttpServletResponse ; 37 38 import com.j2biz.blogunity.exception.BlogunityException; 39 import com.j2biz.blogunity.i18n.I18N; 40 import com.j2biz.blogunity.i18n.I18NStatusFactory; 41 import com.j2biz.blogunity.util.ResourceUtils; 42 import com.j2biz.blogunity.web.IActionResult; 43 import com.j2biz.blogunity.web.actions.AbstractAction; 44 45 public class UserpicAction extends AbstractAction { 46 47 private String nickname; 48 49 private String userpic; 50 51 public UserpicAction(String nickname, String userpic) { 52 this.nickname = nickname; 53 this.userpic = userpic; 54 } 55 56 62 public IActionResult execute(HttpServletRequest request, HttpServletResponse response) 63 throws BlogunityException { 64 65 String relativeResourcePath = "/users/" + nickname + "/userpics/" + userpic; 66 67 FileNameMap fileNameMap = URLConnection.getFileNameMap(); 68 response.setContentType(fileNameMap.getContentTypeFor(relativeResourcePath)); 69 70 InputStream inx = ResourceUtils.getResourceAsStream(relativeResourcePath); 71 72 if (inx == null) { 73 74 throw new BlogunityException(I18NStatusFactory.create(I18N.ERRORS.RESOURCE_NOT_FOUND, 75 relativeResourcePath)); } 76 77 try { 78 BufferedInputStream in = new BufferedInputStream (inx); 79 BufferedOutputStream out = new BufferedOutputStream (response.getOutputStream()); 80 int i = in.read(); 81 while (i != -1) { 82 out.write(i); 83 i = in.read(); 84 } 85 in.close(); 86 out.close(); 87 } catch (IOException ioe) { 88 throw new BlogunityException(I18NStatusFactory.create(I18N.ERRORS.UNKNOWN, ioe)); 89 } 90 91 return IActionResult.NULL_RESULT; 92 93 } 94 95 } | Popular Tags |