Newbie questions about Pliant

Newbie questions about Pliant

File browse window

Message posted by maybe Marcus on 2003/02/06 17:21:18
How can I create a file browse window? One which would allow me to select
a particular file in my directories.
Message posted by maybe michel on 2003/02/07 16:31:33
I am not sure to understand your question.
Can you give more details.
Message posted by maybe Marcus on 2003/02/07 18:51:27
Hi, Michel.

Actually, after some detective work, I found it. It is called 'file_upload'. 
The syntax is:

  file_upload label variable [noeol]

It creates a labeled input field and a button with a 'Browse...' label. When one 
clicks on the button, the browser opens a window which allows one to select a 
file. Once the file has been selected, the input field is filled in with the file 
name+path and 'variable' is set to the full path name plus some other stuff, which 
I am not sure now what they mean. I will verify that.

I will have to include its documentation to the .page instructions site.

Message posted by maybe Michel on 2003/02/07 22:05:28
Yes I know that and I had try to use in the private site  of my association 
but I had troubles with the necessary right to upload and the place where the uploaded file take place.
Good luck for your investigation.
Message posted by hubert.tonneau on 2003/02/08 09:21:16
Assuming that you put the following instruction in a .page file:
  file_upload "The file to upload:" (var Str foo)

then the client will be abble to upload a file to the server.

The file is stored in the temporary directory on the server.
Your application is resonsible to move it to the right place, because if you
don't move it, it will be discarded automatically.
Last point:
  foo option "remote_name"
is the name of the file on the client computer, whereas
is the name of the file on the server.

So, assuming that you have a write open directory file:/pub/upload/
the the typical sequence could be:

file_upload "The file to upload: " (var Str foo) noeol
button "Upload now"
  file_move foo "file:/pub/upload/"+(foo option "remote_name" Str)

There is no special right needed to upload a file. On the other hand, the
application must be very carrefull that the 'file_move' instruction does not
enable to move the file to a not allowed place.
Message posted by marcus on 2003/02/08 12:14:38
Yes, Hubert. I've tested it in a small application I am implementing and it works.

I am setting up a site which my students will use to submit their assignments 
to me.

Message posted by maybe Marcus on 2003/03/04 16:07:20
Once the user has selected and uploaded a file using the instruction below

file_upload "The file to upload: " (var Str foo) noeol

how to I access, in 'foo', the name of the file at the server? Because 'foo'
contains other stuff than the name of the file at the server.
Message posted by maybe Hubert Tonneau on 2003/03/04 16:17:39
Assuming that you have foo.txt file in /tmp/ directory.

It's name using Pliant naming can be:

and can also be:
"file:/tmp/foo.txt" any set of options

the advantage of the second formulation is that you potencially provide a whole
directory (a set of id value pairs) all along with the name.
Message posted by maybe Marcus on 2003/03/04 16:40:08
Let me rephrase the question: Assume foo is the same as in my last posting. I can
get the file 'remote' name using

  foo option "remote_name" Str

or the path using

  foo option "remote_path" Str

But how do I get the first portion of foo, which is the file name at the server.
Message posted by maybe Hubert Tonneau on 2003/03/04 16:42:43
If you want to use the name within Pliant, just use foo
If you want to provide the name to another Unix application, use file_os_name:foo