Java MultipartFile—如何在用户';s机器

Java MultipartFile—如何在用户';s机器,java,spring,spring-mvc,Java,Spring,Spring Mvc,我面临以下问题:我使用MultipartFile将图像与一些其他信息(如电子邮件等)合并 考虑这样一种情况:我们有两个字段:输入=带有电子邮件的文本和带有文件的输入(输入类型=文件)。在服务器端,我有检查电子邮件的验证。现在想象一下,用户输入了无效的电子邮件,选择了一个他想要上传的文件并提交了一个表单。之后,服务器识别出电子邮件无效并返回页面,在该页面中,电子邮件输入使用用户以前输入的值(使用DTO很容易支持),但文件输入为空(DTO包含存储用户以前上载的文件的MultipartFile字段)。

我面临以下问题:我使用MultipartFile将图像与一些其他信息(如电子邮件等)合并


考虑这样一种情况:我们有两个字段:输入=带有电子邮件的文本和带有文件的输入(输入类型=文件)。在服务器端,我有检查电子邮件的验证。现在想象一下,用户输入了无效的电子邮件,选择了一个他想要上传的文件并提交了一个表单。之后,服务器识别出电子邮件无效并返回页面,在该页面中,电子邮件输入使用用户以前输入的值(使用DTO很容易支持),但文件输入为空(DTO包含存储用户以前上载的文件的MultipartFile字段)。我认为将路径与文件一起发送到文件是一种不好的做法,因为这样不安全,而且多部分文件可能不存储文件路径。你能告诉我如何处理这种情况吗?谢谢大家!

上传文件的完整路径在服务器端没有意义,可能被视为敏感数据(因为完整路径可能包括用户名等)

基本文件上载程序和表单中带有
type=file
的HTML
标记不会发送完整路径,您也不应该发送完整路径

编辑(响应您的编辑):

在提交表单之前,您可以在客户端(JavaScript)检查表单的其他字段。如果有任何内容无效,请提醒用户,不要提交表单


或者您可以用Ajax调用提交表单数据,并在服务器端进行检查/确认。

一个例子将帮助我们理解…考虑当我们有两个字段的情况:输入=带有电子邮件的文本和带有文件的输入(输入类型=文件)。在服务器端,我有检查电子邮件的验证。现在想象一下,用户输入了无效的电子邮件,选择了一个他想要上传的文件并提交了一个表单。之后,服务器确认电子邮件无效并返回页面,在该页面中,电子邮件输入符合用户以前输入的值(使用DTO很容易支持),但文件输入为空。请不要澄清为注释,而是扩展初始问题,将所有信息分组在一起。