[OpenLayers-Users] loadURL returns a pdf

bartvde at osgis.nl bartvde at osgis.nl
Fri Feb 6 09:20:37 EST 2009


Hi Alexandre,

I've got a PHP script which will return in JSON the url of the pdf,
something like:

{success: true,
'url':'http://test.intranet.rijkswaterstaat.nl/apps/geoservices/ms_tmp/layout_498c466c_441e_1.pdf'}

then my download function will set it to the src of an iframe making use
of a download.php script (which sets the correct http headers for starting
a download dialog in the browser):

    download: function(response) {
        var res = eval( "(" + response.responseText + ")" );
        this.iframe.dom.src = GeoServices.ScriptsUrl +
'/download.php?url='+res.url;
        GeoServices.getApplication().hideWaitScreen();
    },

The iframe was created like:

        this.iframe = Ext.get(Ext.DomHelper.append(document.body,
            Ext.apply({tag:'iframe', style: 'display:none',
            src:(Ext.isIE&&Ext.isSecure)?Ext.SSL_SECURE_URL:''},true)));

So actually I am using an iframe and not a form (the form was from the top
of my head).

download.php is something like:

<?php

header("Cache-Control: cache, must-revalidate");
header("Pragma: public");

function getContentType($filename) {
  $path_info = pathinfo($filename);
  $extension = strtolower($path_info['extension']);
  if ($extension == 'pdf') {
      return 'application/pdf';
  } else if ($extension == 'xml') {
      return 'text/xml';
  } else {
    return 'application/octet-stream';
  }
}

if (isset($_GET['url'])) {
  include_once(dirname(__FILE__)."/../../chameleon/htdocs/common/http/HTTPClient.php");
  $oHTTPClient = new HTTPClient("", 30);
  header( "Content-type: application/pdf" );
  header( "Content-Disposition: attachment; filename=kaart.pdf" );
  echo $oHTTPClient->doGET($_GET['url']);

} else {
  header( "Content-type: ".getContentType($_POST['filename']));
  header( "Content-Disposition: attachment; filename=".$_POST['filename'] );
  echo stripslashes($_POST['stream']);
}

?>

Best regards,
Bart

> Hi Bart,
>
>   Do you mind showing me a snippet of what you did ?
>
> Many thanks,
>
> Alexandre
>
> bartvde at osgis.nl wrote:
>> I did not find a way to do this with AJAX. So if you find one, I'd be
>> interested :-) but my search back then indicated this is not possible.
>>
>> So I ended up doing the following:
>>
>> 1) my script sends the url to the pdf
>> 2) I set the url as the action of a form and submit the form
>> 3) the download dialog starts
>>
>> I also had to have a static form in my HTML page instead of inserting it
>> with javascript, since otherwise IE would end up opening a new window.
>>
>> Best regards,
>> Bart
>>
>>
>>> Dear users,
>>>
>>>   Still looking for a way to achieve this.  Does anyone have a hint ?
>>>
>>> Alexandre
>>>
>>> Alexandre Dube wrote:
>>>
>>>> Hi list,
>>>>
>>>>   Can I load a script that returns a pdf using loadURL() ?  It
>>>> currently
>>>> returns "Unhandled request return OK" but if I copy the URL in a new
>>>> tab
>>>> I get my pdf correctly.  Any idea what may be wrong ?
>>>>
>>>>
>>>>
>>> --
>>> Alexandre Dubé
>>> Mapgears
>>> www.mapgears.com
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at openlayers.org
>>> http://openlayers.org/mailman/listinfo/users
>>>
>>>
>>
>>
>>
>
>
> --
> Alexandre Dubé
> Mapgears
> www.mapgears.com
>
>





More information about the Users mailing list