package com.piki.server.servlet;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class PIKIImageServlet extends HttpServlet {
/**
* uid
*/
private static final long serialVersionUID = -5519339676359480014L;
private static final HashMap<String, byte[]> images = new HashMap<String, byte[]>();
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
String name = req.getPathInfo().replace("/", "");
resp.setContentType("image/png");
resp.getOutputStream().write(images.get(name));
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletFileUpload upload = new ServletFileUpload();
try{
FileItemIterator iter = upload.getItemIterator(request);
while (iter.hasNext()) {
FileItemStream item = iter.next();
String name = item.getFieldName();
log("Uploaf file: " + name);
InputStream stream = item.openStream();
// Process the input stream
ByteArrayOutputStream out = new ByteArrayOutputStream();
int len;
byte[] buffer = new byte[8192];
while ((len = stream.read(buffer, 0, buffer.length)) != -1) {
out.write(buffer, 0, len);
}
images.put(name, out.toByteArray());
}
}
catch(Exception e){
throw new RuntimeException(e);
}
}
}