Re: [請益] 檔案上傳進度條

看板PHP作者 (請勿忘記密碼)時間18年前 (2007/04/22 19:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串8/14 (看更多)
※ 引述《leejihchi (崎)》之銘言: : ※ 引述《MrMarcus (請勿忘記密碼)》之銘言: : : Flash 8開始支援檔案上傳,使用Flash本身就可以做出檔案上傳、一次 : : 上傳多個檔案、限制可選取的檔案類型以及最重要的,顯示上傳進度。 : : (當然在伺服器端要有接收檔案的程式,不過伺服器端程式非常簡單, : : 也不需要任何特殊設定)。 : : 我不太了解為什麼使用了Flash以後還要使用Ajax。所有的UI以及上傳進度 : : 在Flash本身就可以做掉了。把Ajax拉進來似乎只是讓事情複雜化。 : 照您的說法,SWFUpload似乎真的有點多此一舉。 : 很奇怪的事,我回去重新看一次Code,他的作法似乎是用Ajax來控制 : 檔案佇列,讓網頁不需要Refresh來即時更新內容,用到Flash的地方只有在 : 選擇檔案(包括限制可選取的檔案類型)以及顯示上傳進度, : 另外一方面,他似乎是讓JS與Flash溝通,讓你可以藉由JS來取得一些Flash回 : 應的資料,讓不懂Flash的Coder也可以修改JS來達成你想要的功能。 是的,雖然沒有進去看這個JS的程式碼,但是我想他應該是把Flash當成 一個中介者。嵌入網頁中的swf檔案可以和網頁中的JS溝通,這兩者是 可以互相傳遞資料的。選取檔案的對話方塊是由Flash叫出的(或者說 是由JS去呼叫Flash裡面的FileReferenceList.browse(),這樣就會 跳出選取檔案的對話方塊),檔案上傳也是由Flash來執行,並且把 上傳的進度回報給JS,JS接收到這些資料再去處理UI要怎麼顯示的部份。 但是我個人還是覺得把JS拉進來,讓事情複雜很多。我能想到要這樣做 的理由是,有時候我們不被允許使用Flash來製作UI。當介面必須使用 HTML來製作的時候SWFpload這的作法就有他的意義在了(而且有創意)。 : 的確,伺服器端程式真的非常簡單,不用特別去寫什麼程式,這是比較奇妙的地方 :) 是啊。Flash的檔案上傳功能讓伺服器端的工作變得很簡單(在必須做出 上傳進度的狀況下)。 : 很可惜的事,對於PHP來說,如果要單純PHP+Ajax(或不+Ajax)來做出進度條, : 目前Google到的資料只有另外安裝附加的程式或者要去Patch修改php本身, : 我個人覺得不是很方便(不是每個Server端都可以任你去修改) 所以在被要求做出上傳進度的時候我都用Flash. XD 另外,Flash的檔案上傳除了之前提到的以外,還有一項功能是他可以 在Flash端直接知道使用者選取的檔案大小。這很好用啊。過去要限制 使用者上傳的檔案大小只有等到檔案傳到伺服器端以後才能得知,但是 這時候頻寬也已經浪費掉了。雖然無論如何伺服器端還是要檢查大小, 但可以在client端直接顯示訊息說檔案太大可以省掉不少頻寬。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.153.19
文章代碼(AID): #16Aq9hKg (PHP)
討論串 (同標題文章)
文章代碼(AID): #16Aq9hKg (PHP)