⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myservlet.java

📁 大多数项目都要使用将本地文件上传到服务器上
💻 JAVA
字号:
package servlet;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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;

public class MyServlet extends HttpServlet {

	public MyServlet() {
		super();
	}

	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html");

		String path = request.getRealPath("/");
		System.out.println(path);
		//临时文件
		File file = new File(path + "temp");
    	DiskFileItemFactory factory = new DiskFileItemFactory(1024*1024,file);
		
    	ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
    	try {
			List<FileItem> list = servletFileUpload.parseRequest(request);
			for (FileItem fileItem : list) {
				if(fileItem.isFormField()) {	//一般的文本 type="text" 
					String name = fileItem.getFieldName();
					String value = fileItem.getString("GBK");
					request.setAttribute(name, value);
				} else {	//文件 type="file"
					String name = fileItem.getFieldName();
//					String value = fileItem.getString("GBK");	//文件的内容
					String value = fileItem.getName();		//文件的名字
					int startIndex = value.lastIndexOf("\\");
					String fileName = value.substring(startIndex + 1);
					request.setAttribute(name, fileName);
					
					fileItem.write(new File(path + "up",fileName));	//可以代替下面的代码
					
//					byte [] buf = new byte[1024*8];
//					OutputStream os = new FileOutputStream(new File(path + "upLoad",fileName));
//					InputStream is = fileItem.getInputStream();
//					int length = is.read(buf);
//					while(length > 0) {
//						os.write(buf, 0, length);
//						length = is.read(buf);
//					}
//					
//					os.close();
//					is.close();
				}
			}
			request.getRequestDispatcher("../listInfo.jsp").forward(request, response);
		} catch (FileUploadException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	
    	
    	
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doGet(request, response);
	}

	public void init() throws ServletException {
		// Put your code here
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -