Delivering Files with lcServer ?

Peter W A Wood peterwawood at gmail.com
Fri Apr 25 16:10:53 CEST 2014


Hi Scott

Personally I would keep the two files rather than trying to get this working with a single file. It has the benefit of simplicity.

Regards

Peter


On 25 Apr 2014, at 18:39, Scott Rossi wrote:

> Thanks Peter:
> 
> Same issue here: having the lcserver download code as part of the same
> page that contains the form continues to write the raw ZIP file code to
> the browser.  Maybe the sequencing of code blocks is the problem, I don't
> know.
> 
> That saidŠ  trying your previous suggestion worked for me.  Here's what I
> did:
> 
> 1) All HTML code in its own file, called "page.txt" :
> 
> <html>
>   <body>
>      <form method="post" action="index.lc">
>      <input type="hidden" name="get" value="true"/>
>      <button type="submit">GET FILE</button>
>      </form>
>   </body>
> </html>
> 
> 
> 2) All lcserver code on an index page, called index.lc" :
> 
> <?lc
> 	if number of lines in the keys of $_POST > 0 then
>   put header "Content-type: application/zip"
>   put header "Content-Disposition: attachment; filename=file.zip"
>   put header "Content-Transfer-Encoding: binary"
>   put url "binfile:files/file.zip" into theFile
>   put theFile
> 	else
>   put header "Content-Type: text/html"
>   put url ("file:page.txt")
> 	end if
> ?>
> 
> 
> Now I can press the GET FILE button repeatedly and the download commences.
> 
> I imagine there must be some way to combine all this stuff onto one page
> and force it to work, but for now, after many hours and 3 people trying to
> crack this, having a working option is joy.
> 
> Thanks & Regards,
> 
> Scott Rossi
> Creative Director
> Tactile Media, UX/UI Design
> 
> 
> 
> 
> On 4/25/14 2:32 AM, "Peter W A Wood" <peterwawood at gmail.com> wrote:
> 
>> 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
>> 
>> 
>> _______________________________________________
>> 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