Using LC server to check for existence of mp3 on our web server?
Tim Selander
selander at tkf.att.ne.jp
Sun Jan 22 06:13:08 EST 2017
Phil and Mike, Thanks for your pointers -- both look like they
will work. Also in continuing to poke around the web, I also
found this function that works:
function qrtHTTP_FileExists pURL
breakpoint
local tSocket, tPath, tHeaders, tCommand
set the itemDelimiter to "/"
-- extract host IP address and file path from the URL
put item 3 of pURL into tHost
if tHost contains ":" then
put tHost into tSocket
else
put tHost & ":80" into tSocket
end if
put "/" & item 4 to -1 of pURL into tPath
-- build the command
put "HEAD" && tPath && "HTTP/1.1" into tCommand
-- build the http headers
put "Connection: Close" & CRLF & \
"Host:" && tHost & CRLF & \
"User-Agent: Revolution (" & the version & ")" into tHeaders
-- open the socket, write he request and read the response
open socket tSocket
write tCommand & CRLF & tHeaders & CRLF & CRLF to socket tSocket
read from socket tSocket until CRLF
put word 2 of it into tResultCode
close socket tSocket
-- return our interpretation of the result code
return (tResultCode = 200)
end qrtHTTP_FileExists
It's working for me.... but now I can't re-find it so I can't
credit whoever wrote it!
Copying here for posterity!
Tim Selander
Tokyo, Japan
On 2017.01.22, 19:09, Mike Bonner via use-livecode wrote:
> If you have php on your second server, and don't have lc, you can do a
> check with php similar to what you're talking about. This is untested but..
>
> If you have the following php file (perhaps named checkforfile.php) on the
> alternate server, and send it a get request containing the path to the file
> youre looking for, it will return true or false if it exists. This is
> obviously an extremely bare example. You'd want to make sure the get
> contains "myfile" and handle that too, as well as any other issues. In
> addition, you would probably want to limit the requests to only allowed
> areas and file types in the php script.
> <?php
> echo file_exists($_GET["myfile"]);
> ?>
>
>>From the lc side of things you could do something like this..
>
> <?lc
> get url "
> http://your.alternateserver.com/checkforfile.php?myfile=theFile.mp3"
> if it is true then
> put "<audio src=http://my.programserver.com/theFile.mp3>"
> else
> put "program not found."
> end if
> ?>
>
> Of course if you DO have lc on the program server you can do the same type
> of check and "put" true or false just like you did with php. (Also can be
> done with javascript, asp, etc)
> On Sun, Jan 22, 2017 at 2:16 AM, Phil Davis via use-livecode <
> use-livecode at lists.runrev.com> wrote:
>
>> Hi Tim,
>>
>> Here is a very simplistic way of checking for a file on your server. It
>> assumes your mp3 files are in a 'programs' folder that resides in the
>> 'document root' folder. This script as it is here would be in a .lc file on
>> your server. You pass it a filename in the url and it tells you if the file
>> is in the programs folder or not.
>>
>> So the url would look something like this:
>>
>> http://my.programserver.com/check.lc?1234.mp3
>>
>>
>> The text of the 'check.lc' file:
>>
>> <?lc
>> set the errorMode to "inline"
>> put $_SERVER["QUERY_STRING"] into tFilename
>> put $_SERVER["DOCUMENT_ROOT"] & "/programs/" & tFilename into tPath
>> if there is a file tPath then
>> put "Found file" && q(tFilename)
>> else
>> put "Did not find file" && q(tFilename)
>> end if
>> ?>
>>
>>
>> <?lc
>> function q pString
>> return quote & pString & quote
>> end q
>> ?>
>>
>> This is most likely not exactly what you need, but maybe it'll give you a
>> starting point.
>>
>> Thanks -
>> Phil Davis
>>
>>
>>
>> On 1/21/17 11:36 PM, Tim Selander via use-livecode wrote:
>>
>>> Hi,
>>>
>>> On-rev.com hosting, using LC server to present a list of our AM/FM radio
>>> programs for people to listening to on-demand.
>>>
>>> Out of a month's 20 programs, 3 or 4 might not get uploaded due to
>>> copyright issues, etc. Also, mp3's are not on the on-rev.com server, but
>>> another hosting service we use as well.
>>>
>>> Filenaming is standardized, so I know the list of programs. I want to hit
>>> the server, if the mp3 files exists, present it as an <audio src=, if the
>>> mp3 file does not exists, present a "Sorry, program not available" message.
>>>
>>> If I wanted to check on the existence of a small text file, it would be
>>> fast enough for me to just get it, put it into a variable and see if the
>>> variable has anything in it. But mp3's are too big, so too slow.
>>>
>>> Locally, I would simply write "if there is a file 'filename'..." --
>>> what's the equivalent command for checking on existence of a file on a
>>> server?
>>>
>>> Thanks in advance.
>>>
>>> Tim Selander
>>> Tokyo, Japan
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> 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
>>>
>>>
>> --
>> Phil Davis
>>
>>
>> _______________________________________________
>> 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