[英]How to simultaneously (PHP) curl a file being uploaded by AJAX
我有一個表單,允許用戶將大型視頻文件上傳到第三方API端點。 API期望api密鑰作為參數之一,因此為了保護它,我將表單提交給PHP腳本,PHP腳本使用curl將文件發送到API。 這是有效的,但問題是它意味着文件上傳兩次:一次到我的PHP腳本,然后再從PHP腳本到API。 有沒有辦法並行完成這兩個? 換句話說,讓curl腳本在ajax上傳完成之前開始上傳?
如果你從post更改為put你可以使用
$input = fopen('php://input','r');
然后fread它喜歡標准的大文件,然后發送卷曲的部分塊?
您將需要使用CURLOPT_READFUNCTION以塊的形式傳遞它。
請注意,如果用戶停止了您需要清理丟失文件的原因
我不確定使用帖子的方式
小例子
使用此選項設置卷曲
curl_setopt($ch, CURLOPT_READFUNCTION, functionCall));
function functionCall($ch, $data){
global $input;
return fread($input, $length);
}
$ length是每個塊中發送的數據量。 在上傳開始之前,suer必須至少上傳該數量
8192是一個流行的長度,給它一個去
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.