2014-11-09 7 views
0
내가 압축하여 PHP를 사용하여 디렉토리에서 파일을 다운로드하려고

후 .zip 파일을 삭제하고 나는 "skrilled"에 의해 제안을 사용 :우편 다음 URL에서 디렉토리에서 파일을 다운로드하고 다운로드

ZIP all files in directory and download .zip generated

코드는 나를 위해 잘 작동하지만 코드에서 다음과 같은 기능을 추가해야합니다 : 01 : 나는 다음과 같이 파일 이름에 임의의 문자를 추가 할

  1. $ zipname = 'adcs_RAN-CHARACTERS-HERE.zip';

    1. 사용자가 파일을 다운로드 한 후 파일을 삭제하고 싶습니다.
+0

unlink()를 사용하여 서버에서 zip 파일을 삭제할 수 있다고 생각합니다. –

답변

0

나는 다음과 같이 파일 이름에 임의의 문자를 추가 할 : $ zipname = 'adcs_RAN-CHARACTERS-HERE.zip';

이름을 만들 때 원하는 임의의 문자를 삽입하십시오. 이처럼 할 수있는, 당신은 (두 번째 아래로) 다소 읽을 수있는 타임 스탬프를 포함하고 싶었 예를 들어 말 :

$zipname = 'adcs_' . date('YmdHis') . '.zip'; 

는 헤더 행에 점에 유의 마십시오 변수 이름을 포함해야합니다

header("Content-Disposition: attachment; filename='$zipname'"); 

사용자가 파일을 다운로드 한 후 파일을 삭제하고 싶습니다.

이것은 점점 번잡 해집니다. 문제는 사용자가 파일 다운로드를 완료했는지 여부를 알 수 없다는 것입니다. 다른 스크립트를 사용하여 주기적으로 파일을 정리합니다 (예 : cron 작업으로 예약). 또는 새 zip 파일을 만들 때마다 오래된 파일을 먼저 삭제할 수 있습니다. 또는 시스템에서 temp/tmp 디렉토리를 사용하면 그 때마다 정리됩니다.

+0

저에게 맞는 지시에 감사드립니다. 이제 새로운 기능을 파일에 추가하려고합니다. 1. .txt 파일 또는 MySQL 데이터베이스를 사용하여 다운로드 수를 어떻게 추적합니까? 2. 페이지에 다운로드 수를 표시하는 방법은 무엇입니까? – Tajik

+0

나는 MySQL 데이터베이스를 사용할 것이다. 고유하게 식별 할 수있는 파일 이름을 테이블의 필드로 저장하십시오. 사용자가 파일을 다운로드하고자 할 때마다 테이블에 항목이 이미 있는지 확인하십시오. 그렇다면 현재 다운로드 횟수를 검색하고 표시 할 수 있습니다. 그런 다음 파일을 다운로드 할 때 새 파일에 대한 새 레코드를 삽입하거나 (카운트 1부터) 다운로드 횟수를 증가시켜 기존 레코드를 업데이트 할 수 있습니다. – phansen

관련 문제