package org.geoserver.rest.upload;
import org.apache.commons.fileupload.FileItem;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
/**
* A simple FileStorage implementation that simply writes an uploaded file as-is to disk.
*
* @author David Winslow <dwinslow@opengeo.org>
*/
public class FlatFileStorage implements FileStorage {
public List<String> handleUpload(
String contentType,
File content,
UniqueIDGenerator generator,
File uploadDirectory
) throws IOException {
String originalName = "";
String name = generator.generate(originalName);
InputStream in = new BufferedInputStream(new FileInputStream(content));
File storedFile = new File(uploadDirectory, name);
OutputStream out = new BufferedOutputStream(new FileOutputStream(storedFile));
copyStream(in, out);
in.close();
out.flush();
out.close();
List<String> result = new ArrayList<String>();
result.add(name);
return result;
}
static void copyStream(InputStream in, OutputStream out) throws IOException {
byte[] buff = new byte[1024];
int len = 0;
while ((len = in.read(buff, 0, buff.length)) >= 0) {
out.write(buff, 0, len);
}
}
}