package com.netty.server;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.handler.codec.http.*;
import io.netty.handler.codec.http.multipart.*;
import io.netty.util.CharsetUtil;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.util.Random;
public class DemoHttpUploadServerHandler extends ChannelInboundHandlerAdapter {
private HttpRequest request;
private HttpPostRequestDecoder decoder;
private static final String testUploadPage = "/test_upload_page";
private static final String uploadFileAddress = "/post_multipart";
private static final String saveFilePath = "D:/nettyFile/";
private static final HttpDataFactory factory = new DefaultHttpDataFactory(DefaultHttpDataFactory.MINSIZE);
static {
DiskFileUpload.deleteOnExitTemporaryFile = true;
DiskFileUpload.baseDirectory = null;
DiskAttribute.deleteOnExitTemporaryFile = true;
DiskAttribute.baseDirectory = null;
}
@Override
public void channelInactive(ChannelHandlerContext ctx) {
if (decoder != null) {
decoder.cleanFiles();
}
}
@Override
public void channelRead(ChannelHandlerContext ctx, Object httpRequest) throws Exception {
FullHttpRequest msg = ((HttpJsonRequest)httpRequest).getRequest();
try{
if (msg instanceof HttpRequest) {
this.request = (HttpRequest) msg;
URI uri = new URI(request.uri());
System.out.println(uri);
urlForwarding(ctx, uri.getPath());
}
if (decoder != null) {
if (msg instanceof HttpContent) {