文章出處

一、用Commons-FileUpload組件實現文件上傳

1.導入兩個jar包

FileUpload下載地址:

  http://commons.apache.org/fileupload/

  下載:commons-fileupload-1.2.2-bin.zip    得到:commons-fileupload-1.2.2.jar

  http://commons.apache.org/io/

  下載:commons-io-1.4-bin.zip       得到:commons-io-1.4.jar

2、設置表單的屬性設置以及使用file設置選擇文件,提交地址是test.jsp

  <body>
    <form enctype="multipart/form-data" action="<%=path%>/test.jsp" method="post">
    文件名:<input type="text" name="userName">
  選擇圖片:<input type="file" name="myfile">  
  <input type="submit" value="提交">  
    </form>
  </body>

如圖所示:

3、創建test.jsp頁面,文件上傳到upload文件夾中,實現上傳功能

<%@page import="java.io.File"%>
<%@page import="org.apache.commons.fileupload.*" %>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
request.setCharacterEncoding("utf-8");
//判斷是普通表單還是文件上傳
boolean flag=ServletFileUpload.isMultipartContent(request);
if(flag)
{
     //定義一個解析器,來解析請求中的各個項目
    DiskFileItemFactory factory=new DiskFileItemFactory();    
    //解析upload創建成功
    ServletFileUpload upload=new ServletFileUpload(factory);
    List<FileItem>fileList=upload.parseRequest(request);
    //每一個fileItem都代表一個表單元素
    Iterator<FileItem> myitor=fileList.iterator();
    while(myitor.hasNext())
    {
        FileItem item=myitor.next();
        if(item!=null)
        {
            if(item.isFormField())
            {
                 //獲取該表單元素內容(value值)
                String name=item.getFieldName();
                 //表單的name屬性而不是value值
                if(name.equals("username"))
                {
                    out.print(item.getString("utf-8"));
                    
                }
                
            }
            else
            {
                String filename=item.getName();
                //服務器目錄下 相對路徑
                String path="/WEB-INF/upload/";
                //轉換為絕對路徑
                String absolutepath=this.getServletContext().getRealPath(path);
            
                File file=new File(filename);
                File uploadFile=new File(absolutepath,file.getName());
                item.write(uploadFile);
                
                out.print("上傳成功!");
            }
            
        }
        
    }
}

%>

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()