1

cat 関数がファイルのマージを終了したことを検出して、ファイルを圧縮できる方法はありますか? たとえば、このような単純なケースがある場合、次のような複数のファイルを含むフォルダー:

/var/www/testing/file1.iso0
/var/www/testing/file1.iso1
/var/www/testing/file1.iso2
/var/www/testing/file2.xls0
/var/www/testing/file2.xls1

基本的に、私のWebアプリを使用して、ユーザーはfile1.isoとfile2.xlsをアップロードし、html5を使用して各ファイルをスライスして部分的にアップロードすると、上記の構造になります。各ファイルのすべての部分のアップロードが完了したら、cat unix コマンドを使用して ajax 呼び出しを使用してファイルをマージします。

$command = '(files=(' . $list_file_copy . '); cat ' . '"${files[@]}" > ' . '"' . $file_name . '"' . '; rm ' . '"${files[@]}")';

このようなもの。

exec($cmd . " > /dev/null &");

私の質問は、file1.iso と file2.xls のマージが終了したことをどのように知ることができるので、別のコマンドを送信してファイルを圧縮できるかということです。たとえば、file1.iso と file2.xls は filexxx.zip になります。

ファイルは複数になる可能性があり、個々のファイルは巨大になる可能性があることに注意してください(最大で4GBと言います。これが、100MBを小さな部分にスライスする理由です)

4

1 に答える 1

0

終了コードをチェックしてみてください.......コマンドが完了すると、OSまたは呼び出し元のプログラムに成功/失敗インジケーターが返されます....

$? の値のシェル テストで (最後に実行されたコマンドの終了コードが表示されます)、それが成功した場合、終了コードとして 0 が返されます - zip を実行し、そうでない場合は、必要に応じて警告またはエラーをスローします。

私は多くのスクリプトでそれを行います。お役に立てれば

于 2013-03-28T01:43:29.453 に答える