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"));

                         }

                        }

                      

                    }

%>

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章