2010-07-24 73 views
3

我用下面的jQuery插件上傳的想法:AJAX上傳+ ColdFusion的

http://valums.com/ajax-upload/

出於某種原因,我得到了以下錯誤:

The cffile action="upload" requires forms to use enctype="multipart/form-data". 

即使插件代碼有:

var form = qq.toElement('<form method="post" enctype="multipart/form-data"></form>'); 

任何想法可能是什麼問題?

回答

5

發生這種情況是因爲Safari4和Chrome5不允許以與基於常規表單的上傳相同的方式格式化xhr請求。

您將需要獲取原始發佈數據並將其寫入文件,當獲取文件的正常方式 不可用時。

和返回{「成功」:真}

或在錯誤{「錯誤」:「錯誤消息以顯示」}的情況下

有在ColdFusion中的函數調用GetHttpRequestData這可以幫助, 但我不確定,因爲我從來沒有用過Coldfusion。

http://www.adobe.com/livedocs/coldfusion/7/htmldocs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=ColdFusion_Documentation&file=00000482.htm


如果這將是太困難了,我打算增加一個選項發送作爲以前的版本做了 文件類似的方式,但這種完美的作品 只在Safari5,Chrome6和最新的FF,其他 瀏覽器的用戶將具有與IE用戶相同的體驗。

同時可以使用以前的版本http://github.com/valums/ajax-upload

+0

我可以確認你使用getHttpRequestData()的建議。 getHttpRequestData()。content返回文件字節,URL.qqFile變量包含文件名。然後可以使用FileWrite()將文件保存到磁盤。但我很好奇......這是否也適用於FF?我注意到與3.6.7相同的行爲。 – Leigh 2010-07-25 07:48:19

+0

是的,該文件在FF3.6 +,Safari4 +和Chrome 5+中以這種方式發送。 – 2010-07-25 08:50:22

+0

謝謝@valums。 +1爲好的解釋。 – Leigh 2010-07-25 23:17:02

0

您是否故意忽略操作標籤?也許你可以顯示處理文件上傳的CFM。

+0

這不是行動,我可以看到它在Firebug的,由於某種原因,插件未發佈的ENCTYPE =「的multipart/form-data的」形式。它在舊版本中? – WozPoz 2010-07-25 04:01:14