2012-09-04 2 views
1

나는 salesforce 양식이 here 임베디드되어 있습니다. 이 양식의 기능은 내 사이트의 사용자 입력 데이터를 salesforce.com으로 가져 와서 데이터를 저장 한 후 양식으로 전달 된 반환 url을 통해 내 사이트로 돌아옵니다.랜딩 다운로드 페이지 PHP

이제 반환해야하는 페이지에 파일 다운로드 기능이 있습니다. 파일은 정상적으로 다운로드되지만 브라우저의 url은 양식이 제출되는 곳입니다. 양식을 제출 한 후 브라우저가 내 사이트로 이동하여 동시에 메시지를 표시하면서 파일을 다운로드하도록합니다. 현재 파일 다운로드 만 가능하며 빈 페이지에서도 다운로드 할 수 있습니다.

 header('Content-Type: "'.$mime.'"'); 
     header('Content-Disposition: attachment; filename="'.$filename.'"'); 
     header("Content-Transfer-Encoding: binary"); 
     header('Expires: 0'); 
     header('Pragma: no-cache'); 
     header("Content-Length: ".strlen($data)); 

그리고 나는 그 후 버퍼를 플래시 :

지금은/고맙다 페이지 다운로드를 통과하고있어 헤더는

ob_clean(); flush(); 
    exit($data); 

형태 경우에 이동을하시기 바랍니다 당신은 정보가 충분하지 않다면 원하고 논평한다. 사이트는 여전히 디버그 모드입니다. 또한 내가 원하는 것을 성취하기 위해 무엇을해야하는지에 관해 안내해주십시오.

답변

1

브라우저가 도착하는 마지막 URL은 브라우저에서 이해할 수있는 MIME 유형 (예 : text/html)의 문서이거나 그렇지 않습니다. 일치하는 경우 브라우저가 URL을 표시하고 주소 표시 줄에 해당 URL을 표시합니다. 그렇지 않은 경우 (예 : application/exe) URL을 다운로드하고 그대로 두십시오.

다운로드하는 동안 메시지를 표시하려면 "다운로드가 곧 시작됩니다"라는 HTML 페이지 (MIME 유형이 text/html)를 다시 제공 한 다음 JavaScript로 다운로드를 시작해야합니다 뭔가 같은 :

<!DOCTYPE html> 

<html> 
    <head> 
    <title>Downloading your file</title> 
    </head> 

    <body> 
    <h1>Downloading your file</h1> 
    <p>Your download will begin shortly</p> 

    <script> 
     window.setTimeout(
      function() { 
       window.location.href = "/mydownload.exe"; 
      }, 
      3000 // start download after 3 seconds 
     ); 
    </script> 
    </body> 
</html> 
+0

ok ... 나는 이것을 시도 할 것입니다 ... 유효 할 것 같습니다 ... 왜 이런 생각이 들지 않았는지 ... – xmaestro

+0

당신의 코드는 그것을했습니다. .. . :) – xmaestro

+0

문제 없으니 기꺼이 도와주세요. –

1

당신이해야 할 것은 단지 최종 사용자에게 HTML을 표시하는 일반 PHP 파일, 말, thankyou.php, 수 saleforce.com에서 "반환"페이지가있다 . HTML/JS에서는 다운로드로 리디렉션됩니다. 이런 식으로 뭔가 : 별도의 download.php에서 다음

echo "Thank you. Your file download will start shortly</h2>"; 
echo "<script type='text/javascript'>window.location = '$filename'</script>"; 

그리고는 위에서 보여 코드를 삽입.

나는 당신에게 그 아이디어만을 보여줄뿐입니다. 일반적으로, (a) HTML과 JS를 분리해야합니다. (b) 실제로 올바른 salesforce.com 페이지를 작성했는지 확인하고 정확한 결과를 얻었는지 확인하십시오. 마지막으로 페이지를 표시 한 후 5-10 초 후에 다운로드가 시작되도록 지연을 넣을 수 있습니다. setTimeout 자바 스크립트 기능을 확인하십시오.