Zend Framework AJAX üzerinden bir dosya indirmek zorlamak nasıl?

0 Cevap php

Ben bir kullanıcı download butonuna tıkladığında tarayıcının indirme iletişim sayfasını göstermek için bir yol arıyorum.

Bu benim HTML -

    <span id="ajaxdownloadcontent" class="ajaxaction ajaxbutton" 
onclick="javascript:AjaxDownloadContent('http://localhost/ajax/download/pic/12')"> 
Download </span>

Benim Javascript -

function AjaxDownloadContent(path) {
    $.post(path);
}

Benim kontrolör, AjaxController.php -

class AjaxController extends Zend_Controller_Action {

public function init() {
    if ($this->getRequest()->isXmlHttpRequest()) {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender(TRUE);
    }
}

public function downloadAction() {
    if ($this->getRequest()->isXmlHttpRequest()) {
            $this->getResponse()
                    ->clearAllHeaders()
                    ->setHeader('Content-Disposition', 'attachment;filename="Google_Logo.gif"')
                    ->sendHeaders()
                    ->setBody(file_get_contents("http://www.google.com/logos/logo.gif"))
                    ->sendResponse();
return true;
}

Bu başlıkları (Not bu içerik türü text / html olarak değişmiştir) kundakçı gibi bakmak nasıl

alt text

Ben bu çünkü bootstrap aşağıdaki kodu olduğunu düşünüyorum.

public static function sendResponse(Zend_Controller_Response_Http $response) {
    if (!headers_sent ()) {
        $response->setHeader('Content-Type', 'text/html; charset=UTF-8', true);
    }
    $response->sendResponse();
}

Ve nihayet HTML tepkisi altında bir şey gibi görünüyor -

alt text

How to force download the file(image in this case) over AJAX when the user clicks the download button?

0 Cevap