弹簧形式和使用aws java sdk从s3下载文件的问题

时间:2019-07-11 04:49:02

标签: amazon-s3 aws-java-sdk spring-form

我有一个Spring表单来保存用户个人资料,该用户个人资料具有用于将身份证明存储为图像的字段。在后端,将图像上传到aws s3存储桶,并将相应的url保存到本地数据库中。

<form:form action="${addpartner}" id="addpartner" modelAttribute="partnerForm"  enctype="multipart/form-data"    cssClass="form form-horizontal">

//skipping other fields
<div class="form-group row">
<form:label path="idProofFile" cssClass="col-md-3 label-control">
<spring:message code="partner.idproof"></spring:message><span class="danger">*</span>
</form:label>
<div class="col-md-9">
<form:input path="idProofFile" id="idProofFile" type="file" cssClass="form-control" />
</div>

</div>


</form>

任何用户的id_proof字段的数据库条目如下所示:https://s3.amazonaws.com/mybucket/1562773577867-Capture.JPG

在我单击“编辑”按钮以编辑现有用户的一些详细信息之前,一切都很好。在这种情况下,所有其他字段(如姓名,电子邮件)都将保存在Db中,而不是文件。它为空,可以理解为文件驻留在s3中,而不是db中。

表单支持bean

private Long partnerId;
    private String firstname;
    private String lastname;
    private String email;
    private Long cityId;
    private String cityname;
    private String username;
    private String password;
    private String mobileno;
    private String idCardNumber;
    private String idProof;
    private MultipartFile idProofFile;
    private String address;
    private String termsandconditions;

解决此问题的一种方法是从s3下载文件,然后显示编辑表单并将其设置为dto的 MultipartFile idProofFile 。尽管我可以从s3下载文件,但是我面临的挑战是将File类型转换为Multipart类型。

是否有更好的方法来完成所有这些工作。我只想确保当我单击“编辑”按钮时,文件字段不应为空,并且应显示该用户存在的文件名。

How it looks now when I click on edit button

For reference

EDIt -1

我创建了一个引用this的自定义多部分类,现在可以将字节数组转换为多部分并将其设置为dto。但是字段仍然显示“没有选择文件”。

0 个答案:

没有答案