html5 チャンクを使用してファイル (約 4 GB の巨大なファイル) をアップロードするファイル転送プログラムを作成します。各チャンクのサイズは 100MB です (10MB を使用しようとしているので、理由もなくこれを選択しましたが、私が知る限り、実際には違いはありません)。
各チャンクを正しくアップロードします。アップロードが終わったら、ファイルを1つにマージしようとしますが、時間がかかります。アップローダの Web UI を更新しようとしても、マージが完了するまで機能しません。
私のマージコードは次のようなものです:
$final_file_path = fopen($target_path.$file_name, "ab");
//Reconstructed File
for ($i = 0; $i <= $file_total_chunk; $i++) {
$file_chunk = $target_path.$file_name.$i;
if ( $final_file_path ) {
// Read binary input stream and append it to temp file
$in = fopen($file_chunk, "rb");
if ( $in ) {
//while ( $buff = fread( $in, 1048576 ) ) {
while ( $buff = fread( $in, 104857600 ) ) {
fwrite($final_file_path, $buff);
}
}
if(fclose($in)) {
unlink($file_chunk);
}
}
}
fclose($final_file_path);
とにかく効率的かつ迅速に行う方法はありますか。私はPHPを使用しています。
ありがとうございました