zoukankan      html  css  js  c++  java
  • 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%>">

    </head>

    <body>
    <%=path %>
    <form enctype="multipart/form-data" action="<%=path %>/test.jsp" method="post">
                 姓 名: <input name="username"/>
    选择文件:<input type="file" name="myfile" />
    <input type="submit" value="上传"/>
    </form>
    </body>
    </html

    <%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@page import="java.io.File"%>
    <%@page import="org.apache.commons.fileupload.FileItem"%>
    <%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
    <%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>

    <%
    request.setCharacterEncoding("UTF-8");
                   //将用户传递过来的request中的内容解析出来,判定其类型,如果是常规的普通表单字段,执行处理方式一
                  //否则就代表的是文件域,那么执行处理方式二
                 //01.判定是普通表单,还是用来上传文件的表单
    boolean flag= ServletFileUpload.isMultipartContent(request);
    if(flag){
                //开始找到一个解析器,来解析请求中的各个项目
    DiskFileItemFactory factory=new DiskFileItemFactory();
    ServletFileUpload upload=new ServletFileUpload(factory);//解析器upload创建成功
    List<FileItem> fileList=upload.parseRequest(request);
               //每一个FileItem都代表一个表单元素
    Iterator<FileItem> myitor=fileList.iterator();
    while(myitor.hasNext()){
    FileItem item=myitor.next();
    if(item!=null){
              //对当前item进行验证,看它是普通表单还是上传用的文件域
    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();//ef.doc
              //扔到服务器的目录下
    String path="/WEB-INF/upload";                 //文件上传不能用相对路径
              //将相对路径转换成绝对路径
    String abosolutePath=this.getServletContext().getRealPath(path);
    File file=new File(fileName);
    File uploadFile=new File(abosolutePath,file.getName());
    item.write(uploadFile);
    out.print("上传成功");
                 }
              }
          }
       }
    %>

    <%--<%
                //控制文件上传的类型
    FileItem item=(FileItem) myitor.next();
    if(!item.isFormField()){          //是否是文件的表单字段
    String fileName =item.getName();
               //通过Arrays类的asList()方法创建固定的长度集合
    List<String> fileType=Arrays.asList("gif","bmp","jpg");
    String ext=fileName.substring(fileName.lastIndexOf(".")+1);
    if(!fileType.contains(ext)){     //判断文件类型是否在允许范围内
    out.print("文件上传失败,文件类型只能是gif,bmp,jpg类型");
    }else{
    if(fileName!=null&& !fileName.equals("")){
    File fullFile=new File(item.getName());
    File saveFile=new File(abosolutePath,fullFile.getName());
    item.write(saveFile);
    uploadFileName=fullFile.getName();
    out.print("上传成功后的文件名是:"+uploadFileName);
         }
     }


    }
    %>--%>

     真希望你笑的时候,旁边坐着的是一个能和你一起笑的人。
    合适的圈子,会接纳你所有的好事却不生嫉妒。
    在真正的朋友面前,她从不会认为你显摆,只会由衷的为你高兴。
    总有些人看不得你好。
    但你却从此看清了哪些是真正的朋友,哪些只是过客。
    生活无需过多陪衬,三观不和的朋友多了,越热闹越冷清。 
  • 相关阅读:
    疯狂学java的第七天
    疯狂学java的第六天
    疯狂学java的第五天
    学java的第四天
    学java的第三天
    javaSE_20_常用API(包装类丶BigInteger类丶BigDecimal类 )
    javaSE_19_常用API(String类丶StringBuffer类)
    javaSE_17_内部类丶常用的引用类型用法总结
    javaSE_15_package和import丶访问控制权限
    javaSE_14_抽象类丶接口
  • 原文地址:https://www.cnblogs.com/2652405350wch/p/6767253.html
Copyright © 2011-2022 走看看