Skip to content

Instantly share code, notes, and snippets.

@ivarref
Created November 22, 2016 09:26
Show Gist options
  • Save ivarref/271040c9ece45c15e253a329fd6422c9 to your computer and use it in GitHub Desktop.
Save ivarref/271040c9ece45c15e253a329fd6422c9 to your computer and use it in GitHub Desktop.
package no.nsd.programvareutvikling;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.IOUtils;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.AbstractHandler;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.UUID;
public class DataSetConverter {
public static class SimpleHandler extends AbstractHandler {
@Override
public void handle(String s, Request request, HttpServletRequest httpServletRequest, HttpServletResponse response) throws IOException, ServletException {
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart) {
ServletFileUpload upload = new ServletFileUpload();
try {
FileItemIterator iter = upload.getItemIterator(request);
while (iter.hasNext()) {
long starttime = System.currentTimeMillis();
FileItemStream item = iter.next();
InputStream stream = item.openStream();
String filename = UUID.randomUUID().toString() + ".bin";
try (OutputStream os = new BufferedOutputStream(new FileOutputStream(filename))) {
IOUtils.copy(stream, os);
}
long diff = System.currentTimeMillis() - starttime;
System.out.println("Saved filename " + filename + " in " + diff + " ms");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) throws Exception {
Server server = new Server(8090);
server.setHandler(new SimpleHandler());
server.start();
server.dumpStdErr();
server.join();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment