jsp+servlet+javaBean实现上传功能

本人最近刚学了javaWeb,随手做了一个上传功能

Fileupload.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.util.*"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<base href="<%=basePath%>">
<title>上传文件</title>
</head>
<body>
<%
request.setCharacterEncoding("GBK");
%>
<div id="main">
<form action="UploadServlet" method="post"
enctype="multipart/form-data" name="from1">
<center>
<p>选择要上传的文件,文件类型是Word、PDF等</p>
编&nbsp;&nbsp;号:<input type="text" name="file"><br> <br>
请选择文件:<input type="file" name="file"><br> <br> <input
type="submit" value="上传"> <input type="reset" value="重置">
</center>
</form>
</div>
</body>
</html>


UploadServlet.java

package org.mvc.servlet;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
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;


@SuppressWarnings("serial")
public class UploadServlet extends HttpServlet {
    public void doGet(HttpServletRequest req,
            HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }
    @SuppressWarnings("unchecked")
public void doPost(HttpServletRequest req,
            HttpServletResponse resp) throws ServletException, IOException {
    req.setCharacterEncoding("GBK");
    String realPath=this.getServletContext().getRealPath("/saveDir");//上传文件存放目录
    String temp=getServletContext().getRealPath("/")+"temp";//临时目录
    System.out.println("上传文件存放目录: "+realPath);
    File f = new File(realPath) ;  
        if(!f.exists()){  
            f.mkdir() ;  
        }  
//     boolean isMultipart=ServletFileUpload.isMultipartContent(req);
// if(!isMultipart)
// return;
       DiskFileItemFactory factory=new DiskFileItemFactory();//创建磁盘工厂
       factory.setSizeThreshold(3*1024);//设置缓冲区的大小,此处为3MB
       //factory.setRepository(new File(this.getServletContext().getRealPath("/")+"saveDir"));
       //设置临时文件夹
       factory.setRepository(new File(realPath)); //设置上传文件的目的地
       ServletFileUpload upload=new ServletFileUpload(factory);//创建处理工具,产生servlet上传对象
       upload.setFileSizeMax(3145728);//设置最大上传大小为3MB
       List<FileItem> items=null;    
       try {
items=upload.parseRequest(req);//接收全部内容
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}    
       try {
    List<FileItem> list = upload.parseRequest(req); //取得所有的上传文件信息
    Iterator<FileItem> it = list.iterator();
    while(it.hasNext()){
    FileItem item = it.next();
    if(item.isFormField()==false){ //不是一个普通的表单对象
    String fieldName = item.getFieldName();   
                        String fileName = item.getName();   //文件名
                        String contentType = item.getContentType(); //文件类型   
                        boolean isInMemory = item.isInMemory();   //是否是保存在内存中
                        long sizeInBytes = item.getSize();   
                        //取文件名   
                        fileName=fileName.substring(fileName.lastIndexOf("\\")+1,fileName.length());                
                       
                        if(!fileName.equals("")&&!(fileName==null)){//如果fileName为null,即没有上传文件   
                                File uploadedFile = new File(realPath,fileName);   
                                try {
    item.write(uploadedFile);
    } catch (Exception e) {
    e.printStackTrace();
    }   
                        }             


    }else{ //取得普通的对象[对于像文本框这种类型的使用]
    if(item.getFieldName().equals("userName")){
    System.out.println("我的测试:"+item.getString());
    }
    }
   
    }
    } catch (FileUploadException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
       req.getRequestDispatcher("jsp/succes.jsp").forward(req, resp);
    }
   
    }

Fileupload.java

package org.mvc.vo;


public class Fileupload {
  private String fileId;
  private String fileName;
public String getFileId() {
return fileId;
}
public void setFileId(String fileId) {
this.fileId = fileId;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
  
}
  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值