2013-04-08 90 views
0

我有一個包含文件上傳的表單。在保存到CakePHP數據庫之前用JavaScript處理文件上傳

我需要從文件中提取一些元信息,然後將表單內容保存到我的數據庫。

實現此目的的最佳方式是什麼?

澄清:問題不在於提取文件元,而是如何訪問$ _FILES數組並在最終允許表單提交到服務器之前使用此數據執行js文件。

如何,我實現這一目標目前:

  1. 我提交表單到控制器動作
  2. 它保存數據,然後重新之前有設置的 上傳的文件位置的變量視圖呈現成功提交表單後的初始視圖
  3. 該視圖檢查是否設置了該變量,如果是,則執行基本上提取該元的JavaScript,現在它可以訪問文件的位置,並更新db 一個ajax調用。

以上方法不是在理想元屬於相同的數據行被保存在表單首先提交所以最好我想包括它最初的形式提交,而不是當頁面再次呈現表格提交後。似乎對我來說有點骯髒,但我還沒有看到可以實現的另一種方式。

回答

0

我會建議使用ajax上傳(SWFUpload/Uploadify),然後用處理後的文件數據將數據發送回視圖。

您可以上傳文件,發出多個回調,並最終將呈現的場景數據返回到發出請求的等待javascript函數。

只是我的兩分錢

0

什麼樣的元數據?要回答你的問題,是的,這是可能的,但前提是瀏覽器支持File API。這不包括IE9和更舊的版本。有關更多信息,請參閱this MDN article on FileReader。有各種庫將從文件中提取特定類型的元數據。例如,如果您有興趣從圖像文件中解析EXIF元數據,則應該查看諸如jQuery-fileExif之類的內容。

+0

對不起,我應該更具體。我的問題不是js部分。我可以提取我需要的東西,而不會導致輸入問題,我輸入js文件。問題是,我不確定如何在表單提交過程中實現此目的。 I.e停止表單提交,從$ _FILES數組中獲取tmp_name,然後在提取元的js文件完成執行後允許表單提交。已更新問題。 – BIOS 2013-04-08 03:28:38

相關問題