Java - 使用用户表单输入将图像上传到网站,将它们保存在 MySQL 数据库中,并在网站上显示图像

Posted

技术标签:

【中文标题】Java - 使用用户表单输入将图像上传到网站,将它们保存在 MySQL 数据库中,并在网站上显示图像【英文标题】:Java - Upload images to website with user form input, save them in MySQL databse, and display image on website 【发布时间】:2021-07-30 17:06:18 【问题描述】:

对不起,如果我在这里说了什么或问了什么愚蠢的事情。我对编程还是很陌生。

我正在创建一个网站,用户可以在其中创建活动并添加基本信息,例如标题、描述、联系电子邮件和活动的日期/时间。

除了所有这些信息之外,我还想添加一个上传照片功能,这样用户就可以上传一张图片来配合它。当用户使用网站时,他们可以通过所有信息和图像查看其他用户创建的其他事件。我会说它与 Facebook 事件非常相似。

但是,我一直在试图弄清楚如何将其合并到我的代码中,或者从哪里开始。我已经观看并阅读了许多有关图像上传的视频和文章,其中很多都使用 php 和 PHPMyAdmin。我以前从未使用过 Php,我一直在用 Java 编写程序。我对 html 部分的外观有一个小小的想法,但我不知道如何从我目前拥有的代码开始,我不明白如何将它保存在我的 mysql 数据库中。

这是我的 Events.java 类:

@Entity
public class Events extends AbstractEntity 

    @NotBlank(message = "Name field cannot be left blank.")
    @Size(min = 2, max = 50, message = "Name must be between 2 and 50 characters")
    private String eventName;

    @OneToOne(cascade = CascadeType.ALL)
    @Valid
    @NotNull
    private EventDetails eventDetails;

    public Event(@NotBlank(message = "Name field cannot be left blank.") @Size(min = 2, max = 50, message = "Name must be between 2 and 50 characters") String eventName) 
        this.eventName = eventName;
    

    public Event()

    public String getEventName() 
        return eventName;
    

    public void setEventName(String eventName) 
        this.eventName = eventName;
    

    public EventDetails getEventDetails() 
        return eventDetails;
    

    public void setEventDetails(EventDetails eventDetails) 
        this.eventDetails = eventDetails;
    

    @Override
    public String toString() 
        return eventName;
    

这是我的 create.html:

<!DOCTYPE html>
<html lang="en" xmlns:th="https://www.thymeleaf.org/">
<head th:replace="fragments :: head"></head>
<head>
    <link th:href="@/css/events.css" rel="stylesheet" />
</head>
<body class="create-events-body">
    <header th:replace="fragments :: header"></header>
    <div class="navbar">
        <div class="container">
            <nav>
                <ul class="event-nav">
                    <li><a href="/events" class="all-cta">All Events</a>
                        <a href="/events/create" class="primary-cta">Create an Event</a>
                        <a href="/evetns/delete" class="secondary-cta">Delete an Event</a></li>
                </ul>
            </nav>
        </div>
    </div>

    <section class="create-events-section">
        <form method="post">
            <div class="form-group">
                <div class="form-wrapper">
                    <div>
                        <label class="form-name">Event Name:
                            <input th:field="$event.eventName" class="form-control">
                        </label>
                        <p class="error" th:errors="$event.eventName"></p>
                        <label class="form-email">Contact Email:
                            <input th:field="$event.eventDetails.eventContactEmail" class="form-control">
                        </label>
                        <p class="error" th:errors="$event.eventDetails.eventContactEmail"></p>
                        <label class="form-description">Description:
                            <textarea th:field="$event.eventDetails.eventDescription" class="form-control"></textarea>
                        </label>
                        <p class="error" th:errors="$event.eventDetails.eventDescription"></p>
                    </div>
                </div>
                <input type="submit" value="Create Event">
            </div>
        </form>
    </section>
</body>
</html>

【问题讨论】:

【参考方案1】:

尝试使用 XAMPP 在您自己的计算机上通过 PHPMyAdmin 测试您自己的 MySQL 数据库。 使用 XAMPP 的安全密码。 使用 MySQL 库进行 Java 编码(例如,如果您在 NetBeans 中编码)。 搜索命令行如何通过 java 代码使用 MySQL。 学习 PHP 的语法。 搜索一些好的PHP免费编辑软件,根据需要编辑代码。

【讨论】:

以上是关于Java - 使用用户表单输入将图像上传到网站,将它们保存在 MySQL 数据库中,并在网站上显示图像的主要内容,如果未能解决你的问题,请参考以下文章

如何使用上传的图像 url 注入输入字段以及如何将带有表单的 url 提交到 mongodb?

通过上传表单将图像上传到Django用户个人资料

php 将Gravity表单文件上传字段映射到ACF用户头像图像字段(Wordpress)

是否可以在通过表单上传之前预览本地图像?

如何将输入按钮链接到文件选择窗口? [复制]

使用npm twit将图像上传到Twitter时“媒体类型无法识别”