제목 | zip파일로 압축 과정에서의 오류 문의. | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | madman | 작성시각 | 2016/12/09 16:08:44 |
|
|||
아래의 URL을 참조하여 사내 서버에 올려둔 mp3를 배열로 묶어 다운받을 수 있도록 작성해봤습니다. http://php.net/manual/kr/class.ziparchive.php (A way of zipping files and downloading them thereafter 부분 참조)
$files = array('http://1번.mp3','http://2번.mp3'); $zipname = 'zipped_file.zip'; $zip = new ZipArchive; $zip->open($zipname, ZipArchive::CREATE); foreach ($files as $file) { $zip->addFile($file); } $zip->close(); header('Content-Type: application/zip'); header('Content-disposition: attachment; filename='.$zipname); header('Content-Length: ' . filesize($zipname)); readfile($zipname);
위 코드대로 실행하면 zip파일이 다운은 되는데, 다운된 zip파일을 열어보면 아무 것도 없고 압축 파일이 아닌 것같다고만 나옵니다.
그래서 아래의 코드대로 해보면 다운은 정상적으로 되긴 하는데... 2개의 파일을 압축해야 하는건지라 $path 부분을 배열로 바꿔보면 작동을 하지 않네요. $path = '/home/www/common/media_file/_TEST_1.mp3'; $this->zip->read_file($path); $this->zip->download('mp3.zip');
마지막 방법으로는
$data = array('teacher.mp3' => 'http://1번.mp3', 'student.mp3' => 'http://1번.mp3'); foreach($data as $item) { $this->zip->read_file($item); $this->zip->download('mp3.zip'); }
이렇게 해보면 teacher.mp3와 student.mp3 이렇게 2개로 압축되서 다운은 받아지는데 열어보면 파일이 빈것으로 나오구요.
궁극적인 목적인 앞에서도 언급했지만, 각기 다른 서버에 올려져있는 mp3파일들을 하나의 zip 파일로 압축해서 다운 받게 하는건데... 생각만큼 잘 풀리지가 않네요. 도대체 어떻게 해야할지... 좋은 방법이나 팁 공유 부탁 좀 드리겠습니다. |
|||
다음글 | 한페이지에 두개의 페이징을 구현할려고 합니다. (2) | ||
이전글 | 로그인 페이지 접속시 아이디와 비밀번호가 바로 적어져있... (1) | ||
변종원(웅파)
/
2016/12/09 16:44:23 /
추천
0
|
madman
/
2017/04/26 10:36:00 /
추천
0
늦었지만 답변 감사합니다.
|
첫번째에서 http://주소 형태로 해서 안되는걸 겁니다. 두번째처럼 /home/위치/파일명 형태로 해보세요.
다른 서버에 있는 것은 fopen이나 file_get_contents 같은 함수로 열어서 처리해야 합니다.
게시판 이동합니다.