※ 引述《OpenGoodHate (什麼東西什麼東西)》之銘言:
: 如題
: 目前用PHP 在撰寫API
: 想給行動平台(Android / iOS)批次上傳表單(含照片的表單)
: 如果純表單的話當然就是編成JSON 上傳就好
: 可是因為裡面還有夾照片
: 目前想的是把照片先zip 起來,然後表單裡有照片的檔名
: 接著一次用POST 上傳,Server 接收完之後再unzip把照片放到資料夾中
: 請問還有沒有其他的寫法呢
: 然後有什麼限制要注意
: 目前想到的就只有檔案太大上傳有可能超時的問題
: set_time_limit(0)的話不知道會不會被client咬死導致一條行程就佔用著不會被放掉
: 然後內存加大如果我上傳的照片超過內存設定量會不會爆炸
: 還是這種情況其實要client 自己寫迴圈來call 就好??
: 不知道要怎麼樣實做會是比較好的選擇
我之前寫過IOS的上傳圖片。
事實上我覺得不用把問題想太複雜。
android/ios都有相對應的http request套件。
你可以當成他就是<form method="post" encrypt="multipart/form-data"></form>
唯一的難點就是你後面說的上傳太大的問題。
關於這一點,如果你打算上傳「原圖」其實問題可能還沒那麼大。
我之前的問題是:上傳的圖,php還要各自轉成h720、h480、h240(h = 高)
轉圖才是真正耗記憶體資源的時候。
那時就發生了ipad mini上傳正常,iphone5s上傳異常的情形。
(前者是500萬畫素,後者是800萬畫素)
總的來說,你可以自己先處理好php的表單上傳模式。
統一一個固定接受的介面。
其他的傳輸全按照那個介面的規定走。
你如果擔心set_time_limit(0)的問題。
那你應該反過來想另外一個問題:
誰會希望你上傳到等待程式完成要卡畫面超過1分鐘……
可能卡個10秒就已經受不了了。
我之前其實是有用ignore_user_abort(true)讓上傳後的縮圖留在背景繼續執行。
不知道各位大德是不是也有其他不錯的方法呢?