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日

相关文章

  • Eclipse在线安装hibernate插件

    下面是“Eclipse在线安装Hibernate插件”的完整攻略。 安装步骤 打开Eclipse IDE,点击菜单栏上的 Help -> Eclipse Marketplace 进入插件市场。 在搜索框中输入 hibernate,点击搜索按钮,等待搜索结果出现。 选择需要安装的 Hibernate Tools 插件,点击右侧的 Install 按钮,进…

    Java 2023年5月20日
    00
  • java的Hibernate框架报错“QueryException”的原因和解决方法

    当使用Hibernate框架时,可能会遇到“QueryException”错误。这个错误通常是由于以下原因之一引起的: HQL语句错误:如果您的HQL语句存在问题,则可能会出现此错误。在这种情况下,需要检查您的HQL语句并确保它们正确。 参数绑定错误:如果您的参数绑定存在问题,则可能会出现此错误。在这种情况下,需要检查您的参数绑定并确保它们正确。 数据库表结…

    Java 2023年5月4日
    00
  • SpringBoot中实现接收文件和对象

    首先,我们需要添加SpringBoot Web和Multipart依赖,其pom.xml配置如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactI…

    Java 2023年6月3日
    00
  • 使用jmx exporter采集kafka指标示例详解

    以下是关于使用jmx exporter采集kafka指标的完整攻略: 什么是 JMX Exporter? JMX Exporter 是一个自动化采集系统监控指标并将其解析为 Prometheus 指标格式的工具。它允许用户将 JMX 暴露出来的数据转换成 Prometheus 支持的文本格式。 使用 JMX Exporter 采集 Kafka 指标 以下是使…

    Java 2023年5月20日
    00
  • java编程题之从上往下打印出二叉树

    Java编程题之从上往下打印出二叉树 题目描述 给定一棵二叉树的根节点,从上往下按层打印出这个二叉树,同一层的节点按照从左到右的顺序打印。 例如,给定一个如下所示的二叉树: 8 / \ 6 10 / \ / \ 5 7 9 11 打印出的顺序为:8 6 10 5 7 9 11。 解题思路 此题的解法可以用到二叉树的遍历,我们可以用队列来保存每一层的节点。 将…

    Java 2023年5月26日
    00
  • Python模拟登录验证码(代码简单)

    下面是Python模拟登录验证码的完整攻略: 环境准备 首先要确保电脑上已经安装了Python 3.x版本,并且安装了requests和Pillow库,可以使用以下命令进行安装: pip install requests pip install Pillow 获取验证码图片并保存到本地 首先需要使用requests库向目标网站发送请求,获取验证码图片的二进制…

    Java 2023年6月16日
    00
  • Java中的Comparable和Comparator接口是什么?

    Java中的Comparable和Comparator接口是用于在对象排序过程中进行比较的重要接口。 Comparable接口 Comparable接口是一个内部比较器,用来实现自然排序。一个类实现了Comparable接口,就必须实现其中的compareTo()方法。该方法会返回一个整数值,表示比较结果。如果该对象小于给定对象,返回一个负整数;如果该对象等…

    Java 2023年4月27日
    00
  • Spring 框架中注入或替换方法实现

    Sure! Spring 有很多注入或者替换方法的实现方式,其中比较常见的有以下几种方式: 基于 XML 基于 Java Config 基于注解 下面将逐步介绍这几种方式的具体实现方法和示例。 1. 基于 XML 基于 XML 的方式是 Spring 最早期的实现方式,也是应用最广泛的一种方式。在 XML 中,我们可以通过 <bean> 标签配置…

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