サーバー上の画像からビデオを作成するスクリプトがあり、ユーザーにビデオをダウンロードさせます。ビデオがダウンロードされた後、スクリプトはサーバーからビデオ ファイルを削除します。
ビデオ ファイルがダウンロードされているとき、ヘッダーの content-length は file size() 関数で正しいファイル サイズを示します。しかし、ファイルのダウンロード後またはダウンロード中に、ユーザーが Web サイトのリンクをクリックすると、file size() stat failed エラーが発生します。
コードは次のとおりです。
exec('/usr/bin/mencoder "mf://' . $images . '" -mf fps=25 -o ' . $outputvideo . ' -ovc lavc -lavcopts vcodec=mjpeg:vbitrate=800');
if (file_exists($outputvideo)){
header('Content-Type: video/x-msvideo');
header('Content-Disposition: attachment; filename=' . $outputfilename . '');
header('Content-Length: ' . filesize($outputfilename));
ob_clean();
readfile($outputvideo);
unlink($outputvideo);
exit();
}