zoukankan      html  css  js  c++  java
  • 文件上传

    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("上传成功!");
                }
                
            }
            
        }
    }
    
    %>
    复制代码
  • 相关阅读:
    Visual Studio调试器项目设置
    Debug.Assert Everyone!
    WinDbg中的.natvis文件和类型模板
    已安装的.NET CLR版本之间的w3wp.exe崩溃WinDbg后期调试
    用于DLL注入的WinDbg扩展---!injectdll
    Wireshark中PIDs与网络包的关联
    又又一款抓dmp工具---ProcDump
    基于.NET框架版本在Windbg中加载sos的脚本
    未记录的WinDBG扩展命令---itoldyouso
    合并符号服务器
  • 原文地址:https://www.cnblogs.com/hq-123/p/5638448.html
Copyright © 2011-2022 走看看