在struts 2中预填充文件上载表单

时间:2011-07-20 09:33:57

标签: struts2

我正在开发一个struts 2 Web应用程序,用户可以通过文件上传表单上传文件,如果该文件已存在于数据库中,则应显示确认消息以覆盖现有文件或取消操作。

在上载时,将查询该文件以查找该文件,如果该文件存在则操作结果并在会话中设置一个标记,该标记显示用于用户确认的jquery对话框。我需要在对话框中实现“继续”按钮,该按钮将设置另一个标志以指定覆盖并再次调用相同的操作,这次将上载文件。为了实现这一点,我需要在调用上传操作之前使用先前的请求参数预填充文件上传输入框。

是否有其他方法可以实现上述要求?

如果需要任何细节,请告诉我。

提前致谢。

2 个答案:

答案 0 :(得分:0)

如果数据库中存在具有相同文件名的文件,我假设您不想上传文件。如果是这种情况,为什么在选择上传文件后不检查文件名的重复性。这可以通过两种方式完成

  1. 加载所有文件名列表以及页面,并使用此列表检查所选文件名
  2. 使用 ajax 向服务器发送请求,以便在选择文件时检查重复的文件名
  3. 您可以使用onchange元素的file事件

    出于安全原因,您不能以编程方式处理value元素的file属性,否则您可以填写用户系统中的任何文件并提交表单

答案 1 :(得分:0)

您可以在发送请求之前通过复选框获取用户确认,询问是否在文件存在时覆盖。然后在你的行动中做你的IO的东西。

但是如果您仍然希望在发送请求后显示确认信息,我建议您使用自定义拦截器,在用户确认和文件存在的两个条件下传递请求。如果检查未通过,您可以返回确认部分的自定义结果,然后重新提交请求。只是一个想法。