2010-01-31 45 views
1

我們提供的能力,提交圖像到用戶的畫廊。文件上傳與齒輪和PHP

雖然我們使用的常規方法工作得很好,有些人會上傳多個文件,這可能需要很長的時間,而且是在選擇過程中(一次一個)煩人。

我開始爲使用Gears的人編寫一個替代方法。主要目標是替換文件選擇,並提供上傳進度指示器(這有助於減輕上載多個大文件時的挫折感)。

我已經完成了所有這些工作。

我在這裏(http://uploadmovietool.appspot.com/)引用的電影上傳代碼演示如何使用塊方法上傳文件。我有它正確上傳,服務器正在接受的塊,但我遇到了一個問題,試圖處理傳入的數據與PHP。

每個數據塊是一個單獨的請求到腳本,並沒有數據被登記在PHP的正常輸入數據瓦爾_POST_GET_FILES,等我終於能夠從$GLOBALS['HTTP_RAW_POST_DATA']吸吮然而,即使得到數據當將數據附加到相同的文件時,圖像永遠不會完整。它會顯示部分,但總是有些錯誤。

..That是說..如果有文件上傳到腳本,同時還具有訪問進度更新,我很想聽到一個更簡單的方法。

當我開始這個項目,我曾以爲,齒輪會爲我提供一個辦法做到多用後像正常文件,並簡單地給我以進度信息的間隔事件火災。如果這是可能的(我明顯錯過了它),請讓我知道。

要清楚:我們意識到HTML5支持高級機制,並準備在其可行時立即實施。 :)

更多參考:

,我會繼續使用後(按照谷歌的電影上傳例子)發送的標題是:

Request.setRequestHeader('Content-Disposition', 'attachment; filename="' + self._fileName + '"'); 
Request.setRequestHeader('Content-Type', 'application/octet-stream'); 
Request.setRequestHeader('Content-Range', 'bytes ' + byteRange); 

由於任何人誰可以提供幫助。

回答

0

從您的描述看來,PHP可能不會正確寫入文件..不知道爲什麼。

但是,這是一個棘手的問題。例如,Facebook(如你所知,也使用PHP)決定編寫一個NPAPI插件來實現此功能。

http://www.facebook.com/note.php?note_id=178492968919

此外,您可以考慮寫瀏覽器擴展的移植性較差的選擇。這在Firefox和Chrome中很容易實現,並且會爲這些瀏覽器的用戶提供一個很好的臨時選項。

+0

感謝您的回覆。不幸的是,要求我們的用戶只爲我們的財產安裝插件不是我們願意追求的選項。我會更願意使用Flash上​​傳器而不是插件。 – Spot 2010-02-01 08:47:27