簡體   English   中英

如何同時(PHP)卷曲由AJAX上傳的文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM