2017-01-19 3 views
0

ファイル/ srt/username/filename.srtディレクトリに.srtファイルがあります。私はブラウザでそれをダウンロードすることができる必要がありますが、これを可能にするために、ファイルを最初に圧縮する必要があります。 は私がオンライン、次のコードを見つけました:送信ボタンが押されたときPHP ZipArchiveはzipアーカイブを作成しません。コードで修正するものは?

function download_zip() { 
    if (isset($_POST['download_srt'])) { 
     $zip = new ZipArchive(); 
     $zip->open("files/srt/".$_SESSION['user_name']."/".$_POST['download_srt'].".zip", ZipArchive::CREATE); 
     // output: files/srt/username/filename.srt.zip 

     $zip->addFile($_POST['download_srt']); 
     // output of $_POST['download_srt']: filename.srt 

     $zip->close(); 
    } 
} 

は、コードが呼び出され、$ _POSTデータが送信されます。 この機能は機能しますが、オリジナルのsrtファイルと同じディレクトリにZIPファイルは作成されません。エラーメッセージは表示されません。

答えて

1

あなたは追加するファイルへの正しいパスを提供しなければならない:

$zip->addFile("files/srt/".$_SESSION['user_name']."/".$_POST['download_srt']); 
+0

おかげで、それは今働いています!また、ファイルをディレクトリで圧縮しないようにするには、この関数に2番目のパラメータを指定する必要があります。最初のファイルはファイルのディレクトリ、もう1つは解凍したいファイルの名前です。 2番目のパラメータにパスを指定すると、ファイルは指定されたパスで圧縮されます。 – encrypted21

関連する問題