Delivering Files with lcServer ?

Peter W A Wood peterwawood at gmail.com
Fri Apr 25 05:32:07 EDT 2014


Hi Scott

With a little help from Google, I have managed to put together this example of serving a file from LiveCode Server:

This is the html file from which you can request the download:

<html>
<a href="webtest.lc">click here</a>
</html>

and here is the LiveCode server page (webtest.lc)

<?lc
put "test.zip" into tName           
put url ("binfile:" & tName) into theFile
put header "Content-Description: File Transfer"
put header "Expires: 0"
put header "Cache-Control: must-revalidate"
put header "Pragma: public"
put header "Content-Type: application/octet-stream"
put header "Content-Disposition: attachment; filename=" & tName
put header "Content-Transfer-Encoding: binary"
put header "Content-Length:" && the length of theFile
put binary theFile
?>

The biggest problem that I had was getting LiveCode to download a working zip file until I added the "binary" to put. (I read to do that in the release notes for LiveCode Server 4.6.3, thanks to Google).

Hope this helps.

Regards

Peter


On 25 Apr 2014, at 14:38, Scott Rossi wrote:

> Thanks Simon.  This will likely do what I need.
> 
> But I'd really like to know how to do this with lcserver.  That's the
> point, right?  Not to have to rely on PHP?  :-)
> 
> What's the LC equivalent of what readfile() is doing below?
> 
> Thanks & Regards,
> 
> Scott Rossi
> Creative Director
> Tactile Media, UX/UI Design
> 
> 
> 
> 
> On 4/24/14 11:03 PM, "Simon Smith" <hello at simonsmith.co> wrote:
> 
>> Hi Scott
>> 
>> I have done something similar in php before, where a page loads, and then
>> the file starts downloading a few seconds later, without leaving the main
>> page.
>> 
>> The main page contains a refresh tag that loads the script that starts the
>> download:
>> 
>> <meta http-equiv="refresh" content="2;url=sendfile.php" />
>> 
>> and then the sendfile.php consists of:
>> 
>> <?php
>> header('Content-type: application/pdf');
>> header('Content-Disposition: attachment; filename="' .
>> basename('filename.pdf') . '"');
>> header('Content-Transfer-Encoding: binary');
>> readfile($filename);
>> ?>
>> 
>> Hope this helps.
>> Simon
>> 
>> 
>> On Fri, Apr 25, 2014 at 7:21 AM, Scott Rossi <scott at tactilemedia.com>
>> wrote:
>> 
>>> Hi Peter:
>>> 
>>> I started setting up a test page to demonstrate, and now I can't get
>>> anything to work, not even my single page test which worked a dozen
>>> times
>>> yesterday.  [sigh] Not sure what changed.
>>> 
>>> At any rate, I've seen PHP examples that involve setting content headers
>>> to facilitate a file transfer, so I figured since lcserver operates
>>> similarly, it should be possible to initiate the download of a zipped
>>> file
>>> (or any file).
>>> 
>>> Any examples out there that someone can point me to?
>>> 
>>> Thanks & Regards,
>>> 
>>> Scott Rossi
>>> Creative Director
>>> Tactile Media, UX/UI Design
>>> 
>>> 
>>> 
>>> 
>>> On 4/24/14 6:17 PM, "Peter W A Wood" <peterwawood at gmail.com> wrote:
>>> 
>>>> Hi Scott
>>>> 
>>>> What is the URL of the iframe? Does it include characters such as "?"
>>> or
>>>> "&" ?
>>>> 
>>>> Regards
>>>> 
>>>> Peter
>>>> 
>>>> On 25 Apr 2014, at 08:29, Scott Rossi wrote:
>>>> 
>>>>> Hello List:
>>>>> 
>>>>> I'm hoping someone knowledgable about server stuff has a solution to
>>> a
>>>>> problem I have delivering a file using lcServer via an iframe.
>>>>> 
>>>>> I'm using lcServer with the following code to trigger a file
>>> download:
>>>>> 
>>>>> put url ("binfile:files/sound.zip") into theFile
>>>>> put header "Content-Disposition: attachment; filename=" & quote &
>>>>> "sound.zip" & quote
>>>>> put new header "Content-Type: application/force-download"
>>>>> put new header "Content-Type: application/zip"
>>>>> put new header "Content-Type: application/octet-stream"
>>>>> put new header "Content-Type: application/download"
>>>>> put header "Content-Description: File Transfer"
>>>>> put header "Content-Length:" && the length of theFile
>>>>> put theFile
>>>>> 
>>>>> This appears to work fine from basic web page -- a download is
>>> triggered
>>>>> in the browser and the file is written to the drive.
>>>>> 
>>>>> When I run the same code on a page within an iframe, I get the raw
>>> file
>>>>> code posted to the iframe. :-(
>>>>> 
>>>>> All pages reside in the same domain (no cross domain issues) so I'm
>>> at a
>>>>> loss on how to deal with this.  Any ideas?
>>>>> 
>>>>> Thanks & Regards,
>>>>> 
>>>>> Scott Rossi
>>>>> Creative Director
>>>>> Tactile Media, UX/UI Design
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> use-livecode mailing list
>>>>> use-livecode at lists.runrev.com
>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>>> subscription preferences:
>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>> 
>>>> 
>>>> _______________________________________________
>>>> use-livecode mailing list
>>>> use-livecode at lists.runrev.com
>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>> 
>> 
>> 
>> 
>> -- 
>> 
>> *Simon Smith*
>> *seo, online marketing, web development*
>> 
>> w. http://www.simonsmith.co
>> m. +27 83 306 7862
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list