簡體   English   中英

Spring 3 MVC文件上傳和表單驗證,不會丟失文件

[英]Spring 3 MVC File Upload and Form Validation without losing the file

Spring 3和JSP是否有一個小框架,允許對包含普通字段和文件上載的表單進行服務器端表單驗證,這可以“拒絕”請求而不會丟失上傳的文件?

更詳細:我有一個HTML表單,其中包含正常輸入字段和文件上載字段。 此表單的驗證是在服務器端完成的(在客戶端進行復雜操作)。 如果表單數據正確,則沒有問題。 但是用戶發送無效表單然后我需要再次顯示表單,用戶更正輸入並再次發送表單。 除了用戶需要再次輸入(和上傳)文件這一事實之外,這種方法很好 - 解決方案通常很簡單:我需要將文件存儲在服務器端,然后如果用戶再次發送更正的數據,則使用此已上載的文件。 - 但即使它不是那么復雜,也需要做很多工作,而且我不想重新發明輪子。

所以我的問題是,是否有任何實現此功能的小框架,我可以將其添加到我的應用程序中?

目前我使用:Spring 3.0,JSP,Dojo

您真正需要做的就是保存文件並將其與會話相關聯,而不是依賴自動或注入的驗證來拒絕請求,而不允許您先保存文件 - 程序驗證。 使用某種關聯將文件保存到會話(或者用戶,例如,如果使用Spring Security),以便將來可以在將來的請求中使用。

但是:所需的解決方案要求您建立一些文件的脫機清理。 我有一個類似的情況,一個進程創建一個(永久)“臨時”表。 創建表時,我啟動了一個使用@Async注釋的表監視程序進程,該進程循環並使線程休眠一小時,檢查該表是否仍然存在(在聯機進程結束時將其刪除)。 如果表在一小時后仍然存在,則異步線程將刪除它並退出。 在您的情況下,您需要建立1)檢查用戶是否已完成該過程的內容,以及2)檢查它的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM