示例代码
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.List;
/**
* @author songjianyong
*/
@Slf4j
public class SongUploadServlet extends HttpServlet {
private static final long serialVersionUID = -6777573668182481323L;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
diskFileItemFactory.setRepository(FileUtils.getTempDirectory());
diskFileItemFactory.setSizeThreshold(2 << 19);
List<FileItem> list;
try {
list = servletFileUpload.parseRequest(req);
} catch (FileUploadException e) {
log.error(e.getMessage(), e);
throw new IOException(e);
}
for (FileItem fileItem : list) {
if (fileItem.isFormField()) {
String name = fileItem.getFieldName();
String value = fileItem.getString();
log.info(name);
log.info(value);
continue;
}
File xml = new File(FileUtils.getTempDirectory(), System.currentTimeMillis() + FilenameUtils.getName(fileItem.getName()));
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileItem.getInputStream());
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(xml));
byte[] buff = new byte[1024];
for (int len; (len = bufferedInputStream.read(buff)) > 0; ) {
bufferedOutputStream.write(buff, 0, len);
}
bufferedOutputStream.close();
bufferedInputStream.close();
}
}
}