广告
返回顶部
首页 > 资讯 > 精选 >JavaWeb如何实现上传文件功能
  • 579
分享到

JavaWeb如何实现上传文件功能

2023-07-02 11:07:27 579人浏览 八月长安
摘要

本篇内容主要讲解“javaweb如何实现上传文件功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaWEB如何实现上传文件功能”吧!这是需要使用到的两个jar包一定要导入到lib目录中,并

本篇内容主要讲解“javaweb如何实现上传文件功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaWEB如何实现上传文件功能”吧!

这是需要使用到的两个jar包一定要导入到lib目录中,并添加到发布的lib目录下

JavaWeb如何实现上传文件功能

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html>  <head>    <title>$Title$</title>  </head>  <body>  <a href="upload.jsp" rel="external nofollow" >点击上传文件</a>  </body></html>

JavaWeb如何实现上传文件功能

upload.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>上传文件页面</title></head><body><fORM action="${pageContext.request.contextPath}/upload.do" enctype="multipart/form-data" method="post">    <p>请输入用户: <input type="text" name="username"></p>    <p>上传文件: <input type="file" name="file"></p>    <p><input type="submit"></p></form></body></html>

JavaWeb如何实现上传文件功能

UpLoadServlet

package com.pzy.servlet;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.ProgressListener;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;import javax.servlet.Http.httpservletRequest;import java.io.*;import java.util.List;import java.util.UUID;public class UpLoadServlet extends javax.servlet.http.HttpServlet {    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {        doGet(request,response);    }    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {        try {        //先判断提交的是普通请求还是带有文件的请求        if(!ServletFileUpload.isMultipartContent(request)){            return;//如果是普通文件,直接返回        }//如果通过了这个if,那说明表单是带有文件的        //创建上传文件的保存路径,建议在WEB-INF下,因为这个文件夹是安全的,用户是无法访问这个文件夹的        String uploadPath = this.getServletContext().getRealPath("/WEB-INF/upload");        File uploadFile = new File(uploadPath);        //判断这个文件夹是否存在        if(!uploadFile.exists()){            uploadFile.mkdir();        }        //创建一个临时路径, 假如文件超过了预期的大小,我们就把他放在一个临时文件下,过几天自动删除,或者提醒用户转存为永久        String tmpPath = this.getServletContext().getRealPath("/WEB-INF/tmp");        File file = new File(tmpPath);        //判断文件夹是否存在        if(!file.exists()){            file.mkdir();//没有的话就创建一个这样的目录        }                //1.创建DiskFileItemFactory对象,处理文件上传路径和大小限制的;        DiskFileItemFactory factory=getDiskFileItemFactory(file);        //2.获取ServletFileUpLoad        ServletFileUpload upload=getServletFileUpLoad(factory);        //3.处理上传的文件        String msg=uploadParseRequest(upload,request,uploadPath);        //servlet请求转发消息        request.setAttribute("msg",msg);        request.getRequestDispatcher("msg.jsp").forward(request,response);        } catch (FileUploadException e) {            e.printStackTrace();        }    }    public static  DiskFileItemFactory getDiskFileItemFactory(File file) {        DiskFileItemFactory factory = new DiskFileItemFactory();        //通过这个工厂设置一个缓冲区,当上传的文件大于这个缓冲区的时候,将他放入临时文件中        factory.setSizeThreshold(1024*1024);//此时设置缓冲区大小为1M        factory.setRepository(file);//临时目录的保存目录,需要一个file        return factory;    }    public static ServletFileUpload getServletFileUpLoad(DiskFileItemFactory factory) {        ServletFileUpload upload = new ServletFileUpload(factory);        //监听文件上传进度        upload.setProgressListener(new ProgressListener() {            @Override            //pBytesRead是已经读取的文件大小            //pContentLength是文件的大小            public void update(long pBytesRead, long pContentLength, int pItems) {                System.out.println("总大小:"+pContentLength+"目前上传大小:"+pBytesRead);            }        });        //处理乱码问题        upload.setHeaderEncoding("UTF-8");        //设置单个文件的最大值        upload.setFileSizeMax(1024*1024*10);//最大值为10m        //设置总共文件能够上传的文件大小        upload.setSizeMax(1024*1024*10);        return upload;    }    public static String uploadParseRequest(ServletFileUpload upload, HttpServletRequest request, String uploadPath) throws FileUploadException, IOException {       String msg="";        //把前端请求进行解析,封装成一个FileItem对象        List<FileItem> fileItems = upload.parseRequest(request);        for(FileItem fileItem:fileItems){            if(fileItem.isFormField()){//判断上传的文件是普通的表单还是带文件的表单                //getFieldName指的是前端表单控件的name;                String name = fileItem.getFieldName();                String value = fileItem.getString("UTF-8");//处理乱码                System.out.println(name+":"+value);            }else{//判断它是上传的文件                //============================================处理文件=================================                //拿到文件的名字                String uploadFileName = fileItem.getName();                System.out.println("上传的文件名是:"+uploadFileName);                if(uploadFileName.trim().equals("")||uploadFileName==null){                    continue;                }                //获得上传的文件名    (一般进来的文件都会包含目录.例如/image/girl/pop.png)                String fileName = uploadFileName.substring(uploadFileName.lastIndexOf("/") + 1);                //获得后缀                String fileExtName=uploadFileName.substring(uploadFileName.lastIndexOf(".")+1);                                System.out.println("文件信息名:"+fileName+"----文件类型"+fileExtName);                //可以使用UUID(唯一识别的通用码),保证文件名的唯一;                //UUID.randomUUID(),随机生成一个唯一识别的通用码;                String uuidPath = UUID.randomUUID().toString();                //==========================文件处理完毕=====================================                //存到哪?      uploadPath                //文件的真实存在路径     realPath                String realPath=uploadPath+"/"+uuidPath;                //给每个文件创建一个对应的文件夹                File realPathFile = new File(realPath);                if(!realPathFile.exists()){                    realPathFile.mkdir();                }                //=================================存放地址完毕========================================                //获得文件上传的流                InputStream inputStream = fileItem.getInputStream();                //创建一个文件输出流                //realPath=真实的文件夹                //这只是到最后一级的目录,还差一个文件;加上输出文件的名字+"/"uuidFileName;                FileOutputStream fos = new FileOutputStream(realPath + "/" + fileName);                //创建一个缓冲区                byte[] buffer=new byte[1024*1024];                //判断是否读取完毕                int len=0;                while((len=inputStream.read(buffer))>0){                    fos.write(buffer,0,len);                }                //关闭流                fos.close();                inputStream.close();                msg="文件上传成功!";                fileItem.delete();//上传完成,删除临时文件                //===========================文件传输完成==================            }        }        return msg;    }}

msg.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>消息提示</title></head><body>${msg}</body></html>

WEB-XML

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"         version="4.0">    <servlet>        <servlet-name>UpLoadServlet</servlet-name>        <servlet-class>com.pzy.servlet.UpLoadServlet</servlet-class>    </servlet>    <servlet-mapping>        <servlet-name>UpLoadServlet</servlet-name>        <url-pattern>/upload.do</url-pattern>    </servlet-mapping></web-app>

上传成功后,可以看到upload文件夹下存在一个有uuid码组成的文件夹,文件夹下是我们上传的文件

JavaWeb如何实现上传文件功能

到此,相信大家对“JavaWeb如何实现上传文件功能”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: JavaWeb如何实现上传文件功能

本文链接: https://www.lsjlt.com/news/341675.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaWeb如何实现上传文件功能
    本篇内容主要讲解“JavaWeb如何实现上传文件功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaWeb如何实现上传文件功能”吧!这是需要使用到的两个jar包一定要导入到lib目录中,并...
    99+
    2023-07-02
  • javaweb实现文件上传功能
    本文实例为大家分享了javaweb实现文件上传的具体代码,供大家参考,具体内容如下 1、创建一个空项目 2、新建一个web application 的Module 3、创建一个lib...
    99+
    2022-11-13
  • JavaWeb实现上传文件功能
    本文实例为大家分享了JavaWeb实现上传文件的具体代码,供大家参考,具体内容如下 这是需要使用到的两个jar包一定要导入到lib目录中,并添加到发布的lib目录下 index.j...
    99+
    2022-11-13
  • javaweb实现文件上传小功能
    本文实例为大家分享了javaweb实现文件上传的具体代码,供大家参考,具体内容如下 1.创建文件上传页面 <%@ page contentType="text/html;cha...
    99+
    2022-11-13
  • JavaWeb实现文件上传功能详解
    文件上传功能的实现 在大多数网站中,我们都可以看见文件上传和下载功能的实现,今天我们就文件上传做一个详细的总结 实现步骤: 1、新建一个JSP页面:表单必须设置:enctype=&...
    99+
    2022-11-13
  • JavaWeb实现简单上传文件功能
    本文实例为大家分享了JavaWeb实现上传文件功能的具体代码,供大家参考,具体内容如下 基本思想:网站服务器的内部除了有Web应用,还有文件系统,客户端向网站上传文件就是将文件以流的...
    99+
    2022-11-13
  • JavaWeb实现简单文件上传功能
    本文实例为大家分享了JavaWeb实现简单文件上传的具体代码,供大家参考,具体内容如下 1.概述 通常浏览器上传的所有参数,我们可以通过request对象的getParameter ...
    99+
    2022-11-13
  • javaweb怎么实现文件上传功能
    本文小编为大家详细介绍“javaweb怎么实现文件上传功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“javaweb怎么实现文件上传功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。创建文件上传页面<%...
    99+
    2023-07-02
  • 利用javaweb如何实现一个文件上传功能
    利用javaweb如何实现一个文件上传功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。具体内容如下文件上传示例注意:jsp页面编码为"UTF-8"文件...
    99+
    2023-05-31
    javaweb 文件上传 ava
  • JavaWeb是如何实现文件上传和下载功能
    这篇文章将为大家详细讲解有关JavaWeb是如何实现文件上传和下载功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 文件传输原理及介绍2. JavaWeb文件上传2.1我们用一个新的方...
    99+
    2023-06-22
  • JavaWeb怎么实现简单上传文件功能
    这篇文章主要介绍了JavaWeb怎么实现简单上传文件功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaWeb怎么实现简单上传文件功能文章都会有所收获,下面我们一起来看看吧。基本思想:网站服务器的内部除了...
    99+
    2023-07-02
  • JavaWeb怎么实现简单文件上传功能
    这篇文章主要讲解了“JavaWeb怎么实现简单文件上传功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaWeb怎么实现简单文件上传功能”吧!1.概述通常浏览器上传的所有参数,我们可以...
    99+
    2023-07-02
  • 详解JavaWeb如何实现文件上传和下载功能
    目录1.文件传输原理及介绍2.JavaWeb文件上传2.1我们用一个新的方式创建项目2.2导包2.3实用类介绍2.4pom.xml导入需要的依赖2.5index.jsp2.6info...
    99+
    2022-11-12
  • JavaWeb Servlet实现文件上传与下载功能实例
    目录前言项目准备文件上传前台页面文件下载资源准备超链接下载后台实现下载总结前言 在上网的时候我们常常遇到文件上传的情况,例如上传头像、上传资料等;当然除了上传,遇见下载的情况也很多,...
    99+
    2022-11-13
  • JavaWeb实现文件上传和下载接口功能详解
    目录1.上传java代码实现2.文件流下载java代码实现3.Fileutil工具类代码1.上传java代码实现 @ResponseBody @PostMapping...
    99+
    2022-12-27
    Java Web文件上传下载 Java Web文件上传 Java Web文件下载 Java 文件上传下载
  • javaWeb实现简单文件上传
    本文实例为大家分享了javaWeb实现简单文件上传的具体代码,供大家参考,具体内容如下 1.先导入两个包:commons-fileupload-1.3.3.jar,commons-i...
    99+
    2022-11-13
  • JavaWeb 文件的上传和下载功能简单实现代码
    一、文件的上传和下载1、文件上传的原理分析     1、文件上传的必要前提:          a、提供for...
    99+
    2023-05-31
    java web 文件上传
  • JavaWeb中怎么实现文件上传
    这期内容当中小编将会给大家带来有关JavaWeb中怎么实现文件上传,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。引入依赖当然在引入依赖之前我们需要先创建一个被Maven管理的Web Project,创建方...
    99+
    2023-06-19
  • 如何实现js上传文件功能
    这篇文章给大家分享的是有关如何实现js上传文件功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下一、用input完成上传,效果图如   ...
    99+
    2022-10-19
  • Netty如何实现文件上传功能
    这篇文章主要讲解了“Netty如何实现文件上传功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Netty如何实现文件上传功能”吧!今天我们来完成一个使用netty进行文件传输的任务。在实际...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作