java web图片上传和文件上传实例

下面是关于“Java Web文件上传和图片上传实例”的攻略及示例。

一、文件上传和图片上传的区别

文件上传和图片上传本质上类似,都是将本地文件上传到服务器的某个文件夹中。但是,图片上传还需要进行图片预览和显示操作,所以相较于文件上传,图片上传多了一些处理操作。

二、Java Web实现文件上传和图片上传

在Java Web中,文件上传和图片上传的核心是使用MultipartRequest类解析HTTP请求。MultipartRequest类提供了解析HTTP请求的便利方法,可以从HTTP请求中提取出POST请求中的各个参数。

下面分别给出文件上传和图片上传的实现思路和部分示例代码。

2.1 文件上传

文件上传一般会用到Java Web中的javax.servlet包中的Part类和javax.servlet.http包中的HttpServletRequest类。

实现思路:

  1. 在HTML表单中添加一个input标签,type为“file”;
  2. 在Java Servlet中通过HttpServletRequest获取到上传的文件;
  3. 使用Part对象获取上传的文件的内容;
  4. 将上传的文件存储到指定位置。

下面是一个简单的文件上传示例:

HTML代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>文件上传示例</title>
</head>
<body>
<form action="fileupload" method="POST" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="提交">
</form>
</body>
</html>

Servlet代码:

@WebServlet("/fileupload")
@MultipartConfig
public class FileUploadServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Part filePart = request.getPart("file");
        String fileName = filePart.getSubmittedFileName();
        String fileSavePath = request.getServletContext().getRealPath("/WEB-INF/uploads/" + fileName);
        filePart.write(fileSavePath);
    }
}

2.2 图片上传

图片上传相较于文件上传,还需要多进行图片预览和显示操作。为了实现图片预览和显示,我们可以使用一些前端框架或者JavaScript库。这里我们以JQuery为例,给出一个简单的图片上传示例。

HTML代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>图片上传示例</title>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<form enctype="multipart/form-data">
    <input id="file-input" type="file" name="file">
    <img id="preview" src="" alt="" width="200px" height="200px">
    <input id="file-upload-button" type="button" value="上传">
</form>

<script>
    $(document).ready(function () {

        // 预览图片
        $("#file-input").change(function () {
            var reader = new FileReader();
            reader.onload = function (e) {
                $("#preview").attr("src", e.target.result);
            };
            reader.readAsDataURL(this.files[0]);
        });

        // 上传图片
        $("#file-upload-button").click(function () {
            var formData = new FormData();
            formData.append("file", $("#file-input")[0].files[0]);
            $.ajax({
                url: "imageupload",
                type: "POST",
                data: formData,
                processData: false,
                contentType: false,
                success: function (result) {
                    alert("上传成功!");
                }
            })
        });
    });
</script>
</body>
</html>

Servlet代码:

@WebServlet("/imageupload")
@MultipartConfig
public class ImageUploadServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Part filePart = request.getPart("file");
        String fileName = filePart.getSubmittedFileName();
        String fileSavePath = request.getServletContext().getRealPath("/WEB-INF/uploads/" + fileName);
        filePart.write(fileSavePath);
    }
}

需要注意的是,本示例中图片的上传与文件的上传是完全相同的,唯一的区别在于前端使用了JQuery实现了图片的预览和显示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java web图片上传和文件上传实例 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 详解Spring Security 中的四种权限控制方式

    下面我将详细讲解“详解Spring Security 中的四种权限控制方式”: 1. 认证和鉴权 几乎所有的Spring Security权限控制都需要经过两个基本步骤:认证和鉴权。 认证(Authentication):指确定用户的身份,通常是用户提供用户名和密码给系统来验证其是否能够登录。 鉴权(Authorization):指确定用户是否有权限访问某些…

    Java 2023年5月20日
    00
  • java采用中文方式显示时间的方法

    为了让Java程序中以中文方式显示时间,我们可以采用以下两种方法: 使用java.util.Date和java.text.DateFormat 我们可以用java.util.Date类获取当前的日期和时间,并使用java.text.DateFormat类将日期格式化为中文。下面是一个示例: import java.util.Date; import java…

    Java 2023年5月20日
    00
  • Java复合语句的使用方法详解

    Java复合语句的使用方法详解 介绍 Java中,复合语句是指一个包含多条语句的语句块,被括号{ }包围,它可以被作为一个单独的语句来使用,是控制语句、方法、类等程序块体的基础。本文将详细讲解Java复合语句的使用方法,包括复合语句的定义、使用场景、语法格式以及示例。 定义 在Java中,复合语句的定义即定义一组语句,这些语句被包含在一对花括号{ }中。在复…

    Java 2023年5月20日
    00
  • javascript实现简单搜索功能

    要实现简单的搜索功能,需要使用JavaScript编写代码实现。具体步骤如下: 第一步:获取搜索框元素 使用JavaScript代码获取搜索框输入的内容,代码如下: var input = document.getElementById(‘searchInput’); var keyword = input.value; 以上代码中,searchInput是…

    Java 2023年6月16日
    00
  • Java中常用的数据库连接池_动力节点Java学院整理

    Java中常用的数据库连接池 在Java项目中,数据库是非常重要的一部分,而数据库操作经常涉及到大量的连接和释放,如果每次都新建连接,会增加应用系统的运行开销,降低系统性能。所以,数据库连接池应运而生。本文将详细介绍Java中常用的数据库连接池。 什么是数据库连接池 数据库连接池是一种数据库管理的机制,它通过预先初始化一定数量的数据库连接对象,这些连接对象被…

    Java 2023年5月19日
    00
  • Java C++ 算法题解leetcode652寻找重复子树

    Java C++ 算法题解leetcode652寻找重复子树 题目描述 给定一棵二叉树,返回所有重复子树的根节点,这些子树重复出现在原始的二叉树中。重复的子树意味着在同一位置具有相同的结构以及相同的节点值。 思路分析 我们需要类型为 Map 的一个 map,该 map 用于存储所有子树的出现次数。 我们对二叉树做一次后序遍历,得到一个标识了每一个子树的字符串…

    Java 2023年5月19日
    00
  • Spark调优多线程并行处理任务实现方式

    Spark是一个非常强大的分布式计算框架,但是针对大规模数据处理任务,在默认情况下可能会遇到性能瓶颈。因此,我们需要通过调优实现多线程并行处理,从而提高处理效率和性能。 下面是“Spark调优多线程并行处理任务实现方式”的完整攻略: 1. 理解Spark任务并行处理原理 在进行Spark任务的并行处理时,我们需要考虑两个重要的参数:执行器数和任务分区数。 执…

    Java 2023年5月19日
    00
  • JAVA大作业之图书管理系统实现全解

    JAVA大作业之图书管理系统实现全解攻略 一、需求分析 在进行任何项目之前,首先需要明确项目需求,即明确项目所需要实现的功能。图书管理系统需要包括以下基本功能:1. 图书的录入、修改、删除和查询2. 读者的录入、修改、删除和查询3. 借阅、归还和续借图书4. 生成借阅记录和逾期记录5. 管理员的登陆和注销 二、技术选型 对于图书管理系统的开发,需要选择适合的…

    Java 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部