Я бы пошел за кронами или просто создал бы другой скрипт php, который будет выполнять конвертацию. После того, как пользователь отправит форму, обработайте ее и отправьте данные с $ _POST в сценарий конвертера видео и выполните его, не ожидая ответа.
Вот пример из моего фреймворка, который вы можете изменить в соответствии со своими потребностями.
<code># 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 "
\ п ";
createLog ("CURL FAIL: {$ url} TIMEOUT = {$ timeout}, CURL_ERRNO = {$ err}");
}
curl_close ($ завиток);
вернуть ЛОЖЬ;
}
# НА УСПЕХ
curl_close ($ завиток);
вернуть $ htm;
}
EDIT:
Вы можете прочитать руководство по cURL . Это не имеет ничего общего с $ _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, сразу после поиска записи в базе данных, и конвертируйте файл, обновите запись.
Конечно, как я уже сказал, вам нужно изменить написанную выше функцию curlPost для ваших собственных нужд. И если у вас есть вопросы о том, что такое cURL, я настоятельно рекомендую вам сначала прочитать руководство cURL . Если у вас остались вопросы, вы всегда можете задать другой вопрос, верно?