Delivering Files with lcServer ?

Scott Rossi scott at tactilemedia.com
Fri Apr 25 06:39:38 EDT 2014


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






More information about the use-livecode mailing list