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

    1.0先在页面上初始化

    代码

    复制代码
    <title>文件上传</title>
        
      </head>
      
      <body>
        <form enctype="multipart/form-data" action="test.jsp" method="post">
            名称:<input type="text" name="username" /><br>
            文件:<input type="file" name="myfile" /><br/>
            <input type="submit" value="提交"/>
        </form>
      </body>
    </html>
    复制代码

    enctype=多部分的表单数据,并且如果form表单的属性中多了enctype="multipart/form-data",是不能使用request.getParameter(name属性的)

    效果图

    1.12:在WEB-ROOT的根目录下创建一个test.jsp,实现文件上传功能!

    复制代码
    <%@page import="java.io.File"%>
    <%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
    <%@page import="org.apache.commons.fileupload.FileItem" %>
    <%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
        //解决乱码
        request.setCharacterEncoding("utf-8");
        //将用户传递过来的request的内容显示出来,判断类型,如果是常规的普通表单,那么执行方式一
        //否则是文件域,执行方式二
        //01.判断是普通表单还是文件上传
        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> mytor=filelist.iterator();
            while(mytor.hasNext())
            {
                FileItem item=mytor.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/folder";//相对路径
                        String paths=this.getServletContext().getRealPath(path);
                        out.print(paths);
                        File file=new File(filename);
                        File uploadFile=new File(paths,file.getName());
                        item.write(uploadFile);
                        out.print("上传成功");
                    }
                }
            }
        }
    
    %>
  • 相关阅读:
    小结一下在函数使用的时候加括号和不加括号的区别
    总结一下
    JavaScript中操作有些DOM时关于文本节点和元素节点的问题。
    HP DL388 gen9服务器安装RHEL 6.5系统
    第一次经历黑客攻击服务器系统
    小红帽5.9 配置静态IP上网问题
    redhat linux enterprise 5 输入ifconfig无效的解决方法
    关于将一台电脑分割成2个独立运行个体的测试...(1)
    Ubuntu 小白安装血泪史
    RHL 6.0学习日记, 先记下来,以后整理。
  • 原文地址:https://www.cnblogs.com/ruixinyu/p/5639393.html
Copyright © 2011-2022 走看看