带图像输入的更新表格,每次都必须上传图像

时间:2019-02-13 18:31:01

标签: forms image spring-boot

我正在开发一个应用程序,您可以在其中使用表单将项目注册到数据库。表单具有一些文本输入字段和一个用于上载项目图像的输入字段。

如果我尝试添加新项目,则图像上载字段和所有其他字段均为空(应为空)。但是,当我要更新模型时,只有文本字段会从数据库中检索保存的信息。这意味着我必须上传相同的图像才能发布表单/更新信息,即使我没有做任何更改。有没有一种方法可以将服务器中的图像“预上传”到编辑表单中,从而使用户不必上传图像?

我正在使用Thymeleaf进行查看。

用于保存项目的项目服务方法:

@Override
public void save(Item item, MultipartFile file) {

    try {

        String IMAGE_LOCATION = "/src/main/resources/static/images/";

        String projectDir = System.getProperty("user.dir");
        String totalPath = projectDir + IMAGE_LOCATION;

        Path path = Paths.get(totalPath + file.getOriginalFilename());

        Files.copy(file.getInputStream(),path);

    } catch (IOException e) {
        e.printStackTrace();
    }


    item.setImageName(file.getOriginalFilename());
    itemRepository.save(item);
}

查看:

        <form th:action="@{/save}" method="post" modelAttribute="item" enctype="multipart/form-data">

            <input type="hidden" th:value="${item.item_id}" name="item_id">


            <div class="form-group">
                <input type="text" class="form-control" th:value="${item.name}" placeholder="Name" name="name">
            </div>

            <div class="form-group">
                <input type="text" class="form-control" th:value="${item.quantity}" placeholder="Quantity" name="quantity">
            </div>

            <div class="form-group">
                <input type="file" class="form-control" name="file"/>
            </div>


            <button class="btn btn-success">Add item</button>
        </form>

0 个答案:

没有答案