我會去crons或只是創建另一個PHP腳本,將做轉換。用戶提交表單後,處理表單並將$ _POST數據發送到視頻轉換器腳本並執行它,而不用等待響應。
下面是我的框架中的一個示例,您可以根據需要進行修改。
# Executing The Script
$data = array();
$data['start'] = 0;
$data['end'] = 20;
$url = SITE_ROOT.CRONS_DIR.$found->path."/".$found->name.".php";
$response = curlPost($url,$data,3,TRUE);
if ($response){
echo "<pre>";
echo htmlentities($response);
}
# curlPost function
function curlPost($url, $postArray = NULL, $timeout=2, $errorReport=FALSE) {
# PREPARE THE POST STRING
if ($postArray != NULL) {
$postString = '';
foreach ($postArray as $key => $val) {
$postString .= urlencode($key) . '=' . urlencode($val) . '&';
}
$postString = rtrim($postString, '&');
}
# PREPARE THE CURL CALL
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url );
curl_setopt($curl, CURLOPT_HEADER, FALSE );
curl_setopt($curl, CURLOPT_POST, TRUE );
($postArray != NULL) ? curl_setopt($curl, CURLOPT_POSTFIELDS, $postString) : '';
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE );
# EXECUTE THE CURL CALL
$htm = curl_exec($curl);
$err = curl_errno($curl);
$inf = curl_getinfo($curl);
# ON FAILURE
if (!$htm) {
# PROCESS ERRORS HERE
if ($errorReport) {
echo "CURL FAIL: {$url} TIMEOUT={$timeout}, CURL_ERRNO={$err}";
echo "<pre>\n";
var_dump($inf);
echo "</pre>\n";
createLog("CURL FAIL: {$url} TIMEOUT={$timeout}, CURL_ERRNO={$err}");
}
curl_close($curl);
return FALSE;
}
# ON SUCCESS
curl_close($curl);
return $htm;
}
編輯: 您可以閱讀cURL manual。這與$ _FILE無關。
讓我以不同的方式解釋你;
- 您有form.php;這是 頁面,用戶在這裏看到表單,並提交表單 。
- 您有upload.php或 form_process.php;此頁面將要 將用戶提交的所有需要的數據記錄到您的數據庫。
在您正在處理用戶提交的數據的頁面中,只需將其記錄到數據庫,上傳文件,上傳文件後,準備$ _POST數組或包含需要轉換文件的信息的任何數組。
例如;
$data['id'] = 100; //ID in the database
$url = "video_converter.php";
$response = curlPost($url, $data, 3, TRUE);
在video_converter.php - >剛剛得到與$ _GET的ID,發現右後在數據庫中的記錄,並且轉換的文件,更新記錄。
當然,正如我所說的,您需要修改我上面寫到自己需要的curlPost函數。如果您對cURL有什麼疑問,我強烈建議您先閱讀cURL manual。如果你仍然有問題,你可以問另一個問題總是正確的?
謝謝Pixeler,我很欣賞它,但是我究竟在看什麼?什麼是捲曲,腳本在做什麼?表單是否發佈到$ _FILE? ffmpeg在哪裏?我用exec來執行它。 – Scarface 2011-06-09 20:21:37
這是用於文件上傳後的文件嗎? – Scarface 2011-06-09 20:44:46
對不起,我昨天休息了。我剛剛醒來,所以我希望我已經清楚了( – Revenant 2011-06-12 13:00:43