2010-02-19 4 views
0

다음은 내가 수행하려고 시도한 것입니다. 테스트를 포함하는 사용자 정의 텍스트 파일을 만들고 있습니다. 이 테스트는 사용자에게 독특하며 서버에서 모든 텍스트 파일을 쌓는 것을 원하지 않습니다.사용자가 다운로드를 완료 한 경우 Ajax/jQuery 찾기

Ajax/JavaScript/jQuery를 사용하여 사용자가 이미 다운로드를 완료했는지 확인하고 응답이 PHP 파일로 다시 전송 될 수 있도록 반환 값 (완료되면 1)을 얻었습니까? 그것은 서버 (실시간 같은)에서 그 파일을 삭제할 수 있습니까?

나는 PHP를 사용하여 이것을 할 수있는 많은 방법이 있음을 알고 있습니다. 사용자가 로그 아웃 할 때처럼 정리를 실행하는 것과 비슷하지만 사용하기에 멋진 다른 많은 응용 프로그램을 가질 수 있으므로 위의 방법을 사용하려고했습니다. 나는 대부분의 수색 엔진을 시도했다 그러나 그들은 나가 필요로하는 것에 가깝게 아무것도 없다.

답변

1

왜 파일에 저장해야합니까? 테스트를 생성하고 사용자에게 직접 출력하는 PHP 스크립트 등을 사용하십시오. 이렇게하면 다운로드가 완료되면 삭제됩니다.

+0

이렇게하는 것이 가장 좋은 방법입니다. 당신이 사용하고자하는 것은 Content-Disposition 헤더입니다. 헤더 함수에 대한 PHP 문서의 예가 있습니다 : http://php.net/manual/en/function.header.php –

0

중요한 경우 사용자가 다운로드 한 파일의 해시를 사용하여 서버로 돌아갈 수 있습니다. 해시가 일치하는 경우 다음 두 가지를 알고 :
1. 사용자가 파일을 다운로드 성공적으로
2.

+0

이 문제에 동의하십시오. 해싱 파일에 익숙한 사람은 거의 없습니다. 나는 모든 사람들이이 소프트웨어를 설치해야할지 확신하지 못한다. –

+0

질문에 대한 오해가있을 수 있습니다. 사용자가 디스크에 파일을 다운로드해야하는 경우 내 솔루션이 좋지 않습니다. 그러나 "테스트"를 다운로드해야하는 경우 (예 : 브라우저에서 볼 때) JavaScript로 해시 기능을 사용할 수 있으며 설치된 모든 프로그램이 필요하지 않습니다. (위의 문제는 테스트가 클라이언트의 viewd가 아닌 서버의 텍스트 파일에 저장된다는 것을 나타냅니다. – MyGGaN

0

음은 매우 간단합니다 파일을 삭제 이제 괜찮습니다. 필자는 PHP 웹 페이지를 사용자에게 보내어 PHP가 텍스트 파일을 만들어 강제로 사용자에게 전송하도록하는 방법을 알지 못합니다. 이로 인해 임시 폴더에 너무 많은 텍스트 파일이있는 문제가 발생합니다.

이제 테스트에서 필요한 텍스트 또는 HTML 형식 파일이있는 15 개의 챕터가 있으면 스크립트는 모든 파일을 깔끔하게 압축하여 사용자에게 보냅니다. 사용자가 다운로드를 마쳤다면 다시 같은 문제에 빠지게됩니다. 임시 디렉토리에서 임시 zip이나 텍스트 파일을 다소 실시간으로 삭제하기 위해 모든 유형의 스크립트를 얻으려고합니다.

MD5 다운로드 파일을 자바 스크립트를 사용하여 다운로드 할 수 있다면 문제가되지 않습니다.하지만 자바 스크립트를 사용하면 사용자의 다운로드 폴더에 액세스 할 수 있습니다. 내가 틀리지 않으면 안보 문제가있다. 희망이 좀 더 질문에 도움이되기를 바랍니다.

0

내가 만든 jQuery File Download plugin을 사용하여 여기있는 좋은 해결책이 있습니다. Success and Failure 콜백을 통해 Ajax 파일 다운로드 (실제로는 가능하지 않음)를 수행하는 동작을 얻을 수 있습니다. 요약하면 성공 콜백 (파일 다운로드 성공을 나타냄)을 사용하여 파일을 삭제하기 위해 서버로 Ajax 포스트를 다시 수행 할 수 있습니다. Success 콜백 옵션을 사용하는 방법에 대한 예제는 blog post을 참조하십시오. 또는 진행 상황을 사용자에게 알리기 위해 모달 표시 컨텍스트에서 이러한 콜백을 사용하는 demo을 살펴보십시오.

관련 문제