目前根據(jù)文檔上的一個(gè)二進(jìn)制文件上傳的例子來(lái)做一個(gè)tcp的文件上傳,當(dāng)傳輸幾十兆的文件就出錯(cuò)了(服務(wù)端錯(cuò)誤:error package. package_length=66032542,客戶端:Notice: fwrite(): send of 8192 bytes failed with errno=10054 遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個(gè)現(xiàn)有的連接。)。我想把大文件分片上傳,可又不知道思路。
不行的話,只有換成 http api $_FILES的形式,但是走tcp也應(yīng)該可以,小弟太菜,還請(qǐng)大神指點(diǎn)
[attach]2084[/attach]
這個(gè)案例我搞過(guò),效果如圖所示,支持大文件上傳,支持?jǐn)帱c(diǎn)續(xù)傳等等,關(guān)鍵用到技術(shù)點(diǎn)有:
1、服務(wù)端使用官方的BinaryTransfer協(xié)議或者其他自定義協(xié)議均可;
2、大文件進(jìn)行切片分塊上傳,PHP客戶端要用到 fseek() 函數(shù);
3、服務(wù)端每次收到連接消息后,都要通知客戶端目前已經(jīng)接收了多少數(shù)據(jù)量;