jsp上传文件到服务器

  1. 新建一个jsp上传页面uoloadFile.jsp

            <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":" +request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

  

    <title>实现文件上传到服务器</title>

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">  

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

    <!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

  </head>

 

  <body>

  <%

                out.print(path+"<br/>");

                 out.print(basePath+"<br/>");

  %>

<form action="doFileUpload.jsp" method="post" enctype="multipart/form-data">

    文件:<input type="file" name="chooseFile"/></br>

    姓名:<input type="text" name="userName"/></br>

    <input type="submit" value="提交">

    </form>

  </body>

</html>

 

        

  1. 然后新建一个用于处理上传语句的jsp页面: doFileUpload.sjp

            <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>

<%@page import="org.apache.commons.fileupload.FileItemFactory"%>

<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>

<%@page import="org.apache.commons.fileupload.FileItem"%>

<%@page import="java.io.File"%>

<%

                //先判断是否是文件上传类型enctype="multipart/form-data"

                boolean isFileUpload = ServletFileUpload.isMultipartContent(request);

                //如果是文件上传类型

                if(isFileUpload){

                //得到文件上传工厂

                    FileItemFactory factory = new DiskFileItemFactory();

                    //处理文件上传核心类

                    ServletFileUpload fileUpload = new ServletFileUpload(factory);

                    //设置文件上传类的编码格式

                    fileUpload.setHeaderEncoding("UTF-8");

                    // 集合数据 :  FileItem对象 注意: 每一个表单域 对应一个 FileItem对象(封装)

                    List<FileItem> fileItemList = fileUpload.parseRequest(request);

                    //遍历fileItemList

                    for(FileItem item: fileItemList){

                        //如果这个文本域是文件类型的

                        if(!item.isFormField()){

                        //得到文本域的value值,即 路径+文件名

                        String value = item.getName();

                        out.print("得到文本域的value值,即 路径+文件名:"+value+"<br/>");//------------------

                       

                        //得到文件名

                        String fileName = value.substring(value.lastIndexOf("\\")+1);

                        out.print("得到文件名:"+fileName+"<br/>");//------------------

                       

                        //得到上传的文件类型

                                //String fileType = fileName.substring(fileName.lastIndexOf("."));

                        //给文件重新命名 日期+文件名

                        fileName = new Date().getTime() + fileName;

                        out.print("给文件重新命名 日期+文件名:"+fileName+"<br/>");//------------------

                       

                        //得到服务器的根路径

                        String rootPath = request.getRealPath("/");

                        out.print("得到服务器的根路径:"+rootPath+"<br/>");//--------------------

                       

                        //指定文件存放路径

                        //String realPath = rootPath+"/"+"upload";

                        String realPath="G:/MyWork/workspace/CZX/WebContent";

                        out.print("指定文件存放路径:"+realPath+"<br/>");//-------------------------

                       

                       

                       

                        //定义文件存放的目录,注意 目录也是文件           

                        File file = new File(realPath);

                        //如果目录不存在

                        if(!file.isDirectory()){

                            //创建文件上传目录

                            file.mkdirs();

                        }

                        File newFile = new File(realPath+"/"+fileName);

                        //向newFile文件中写入数据

                        item.write(newFile);

                        }else {//如果不是文件上传的文本域,把输入的内容显示在页面上

                            out.print("name=" + new String(

                                                                item.getFieldName().getBytes("ISO-8859-1"),"utf-8")

                                                                +",value="+ new String(

                                                                item.getString().getBytes("ISO-8859-1"),"utf-8"));

                         }

                        }

                      

                    }

%>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值