Invoking a directory browse for file(s) download

G

Glenn Owens

As a "newbie" to Javascript I need some help with my latest problem...

I have a number of image files that have been pre-selected by the user
for downloading. I'd like to be able to have the user click a button
and have a directory browser pop-up window available for the user to
select the directory into which the image files will be downloaded.

I thought that this would be simple to find but...

If this is possible I further need to know:

1) how to access the directory path string (which will be used to
download the files)

2) how to set any available default values for the directory bvrowser.

I'd really appreciate anyone being able to point me in a direction.

TIA
Glenn
 
J

Jeff North

On 20 Sep 2004 08:28:07 -0700, in comp.lang.javascript
| As a "newbie" to Javascript I need some help with my latest problem...
|
| I have a number of image files that have been pre-selected by the user
| for downloading. I'd like to be able to have the user click a button
| and have a directory browser pop-up window available for the user to
| select the directory into which the image files will be downloaded.
|
| I thought that this would be simple to find but...
|
| If this is possible I further need to know:
|
| 1) how to access the directory path string (which will be used to
| download the files)
|
| 2) how to set any available default values for the directory bvrowser.
|
| I'd really appreciate anyone being able to point me in a direction.

If I understand you correctly then there is no need for this.
If the user right mouse clicks the image then they can select Save As
from the context menu. This in-turn will ask the user for the location
to save the file to.
 
G

Glenn Owens

Not true. As I mentioned I need a way to download a number of image
files from a gallery-style image search engine to a directory
destination of the user's choosing. Selecting each image with a
right-click and specifying the directory would be unnecessarily
tedious for the user.

I did find a way to involk the BrowseForFolder activeX control through
Javascript out on MSDN. So, I implemented, and tested, the control and
that seems to be working well. Here's the Javascript that I'm using:

function GetDownloadPath() {
var frm = document.forms[0];
var Shell = new ActiveXObject("Shell.Application");
var Folder = new Object;

Folder = Shell.BrowseForFolder(0, "Choose a download folder", 0);

var FolderItem = new Object;
FolderItem = Folder.Items().Item();

document.all.item("lblFilepath").InnerText = FolderItem.Path;
frm.lblFilepath.Text = FolderItem.Path;
}


Now, my out question is how to get the client-side FilePath back to
the server without a second round-trip to the server.

Any thoughts wsould be appreciated.

Glenn
 
J

Jeff North

On 21 Sep 2004 04:29:37 -0700, in comp.lang.javascript
| Not true. As I mentioned I need a way to download a number of image
| files from a gallery-style image search engine to a directory
| destination of the user's choosing. Selecting each image with a
| right-click and specifying the directory would be unnecessarily
| tedious for the user.

The user only has to navigate to their folder once and it becomes the
default folder so subsequent downloads go to that folder. The user can
also rename the file if required.
| I did find a way to involk the BrowseForFolder activeX control through
| Javascript out on MSDN. So, I implemented, and tested, the control and
| that seems to be working well. Here's the Javascript that I'm using:
|
| function GetDownloadPath() {
| var frm = document.forms[0];
| var Shell = new ActiveXObject("Shell.Application");
| var Folder = new Object;
|
| Folder = Shell.BrowseForFolder(0, "Choose a download folder", 0);
|
| var FolderItem = new Object;
| FolderItem = Folder.Items().Item();
|
| document.all.item("lblFilepath").InnerText = FolderItem.Path;
| frm.lblFilepath.Text = FolderItem.Path;
| }

I get 'Permission Denied' error message (WinXP SP2 IE6.0.29)

Error: ActiveXObject is not defined (NS7.1 and Mozilla1.7)
| Now, my out question is how to get the client-side FilePath back to
| the server without a second round-trip to the server.

You can't.
 
L

Lee

Glenn Owens said:
Not true. As I mentioned I need a way to download a number of image
files from a gallery-style image search engine to a directory
destination of the user's choosing. Selecting each image with a
right-click and specifying the directory would be unnecessarily
tedious for the user.

I did find a way to involk the BrowseForFolder activeX control through
Javascript out on MSDN. So, I implemented, and tested, the control and
that seems to be working well. Here's the Javascript that I'm using:

function GetDownloadPath() {
var frm = document.forms[0];
var Shell = new ActiveXObject("Shell.Application");
var Folder = new Object;

Folder = Shell.BrowseForFolder(0, "Choose a download folder", 0);

var FolderItem = new Object;
FolderItem = Folder.Items().Item();

document.all.item("lblFilepath").InnerText = FolderItem.Path;
frm.lblFilepath.Text = FolderItem.Path;
}


Now, my out question is how to get the client-side FilePath back to
the server without a second round-trip to the server.

Any thoughts wsould be appreciated.

Jeff is not just being difficult. What you're asking for would
be a serious security breach. If your code can decide where to
put things, what would prevent you from putting things in my
system directories? Only a few browsers with little respect for
the user's security allow any access to the user's filesystem at
all.
 
G

Glenn Owens

Mr. North,

As we are a Microsoft shop I'n less concerned over the fact that this
is the first time I'm used Microsoft-only controls (though I do try to
remain agnostic as to the platform. We are using WinXP SP1 IE6.0.28)
and the Shell.BrowseFroFolder is working well - no access errors. The
website is configured for Windows Authentication (only) and the
web.config file provides the ASPNET_WP with impersonation rights.

As far as getting the Filepath back from the client without a second
roundtrip (the first was to initiate the image download via an asp
button click)... this bacame easy to accomplish with a bit of
JavaScript and a "hidden" HTML input field in the form.

So, while - yes, I'm not addressing the NS and Mozilla users (of which
we have none) the remainder of the image search/engine/gallery
upload/download works just fine.

Glenn


Jeff North said:
On 21 Sep 2004 04:29:37 -0700, in comp.lang.javascript
| Not true. As I mentioned I need a way to download a number of image
| files from a gallery-style image search engine to a directory
| destination of the user's choosing. Selecting each image with a
| right-click and specifying the directory would be unnecessarily
| tedious for the user.

The user only has to navigate to their folder once and it becomes the
default folder so subsequent downloads go to that folder. The user can
also rename the file if required.
| I did find a way to involk the BrowseForFolder activeX control through
| Javascript out on MSDN. So, I implemented, and tested, the control and
| that seems to be working well. Here's the Javascript that I'm using:
|
| function GetDownloadPath() {
| var frm = document.forms[0];
| var Shell = new ActiveXObject("Shell.Application");
| var Folder = new Object;
|
| Folder = Shell.BrowseForFolder(0, "Choose a download folder", 0);
|
| var FolderItem = new Object;
| FolderItem = Folder.Items().Item();
|
| document.all.item("lblFilepath").InnerText = FolderItem.Path;
| frm.lblFilepath.Text = FolderItem.Path;
| }

I get 'Permission Denied' error message (WinXP SP2 IE6.0.29)

Error: ActiveXObject is not defined (NS7.1 and Mozilla1.7)
| Now, my out question is how to get the client-side FilePath back to
| the server without a second round-trip to the server.

You can't.
 
J

Jeff North

On 28 Sep 2004 13:59:55 -0700, in comp.lang.javascript
| Mr. North,
|
| As we are a Microsoft shop I'n less concerned over the fact that this
| is the first time I'm used Microsoft-only controls (though I do try to
| remain agnostic as to the platform. We are using WinXP SP1 IE6.0.28)
| and the Shell.BrowseFroFolder is working well - no access errors. The
| website is configured for Windows Authentication (only) and the
| web.config file provides the ASPNET_WP with impersonation rights.

Fine, considering none of this was mentioned in your original posting.
Where did you get this control from, why not contact them for support?
| As far as getting the Filepath back from the client without a second
| roundtrip (the first was to initiate the image download via an asp
| button click)... this bacame easy to accomplish with a bit of
| JavaScript and a "hidden" HTML input field in the form.

The fact still remains that you can't send information back to the
server without re-submitting the page.

You could use a frameset. The first frame being hidden (sized and
positioned out of the way on the page). The second page would
communicate with the first frame. The first frame would transmit this
information to the server.
| So, while - yes, I'm not addressing the NS and Mozilla users (of which
| we have none) the remainder of the image search/engine/gallery
| upload/download works just fine.
|
| Glenn
|
|
| > On 21 Sep 2004 04:29:37 -0700, in comp.lang.javascript
| > (e-mail address removed) (Glenn Owens) wrote:
| >
| > >| Not true. As I mentioned I need a way to download a number of image
| > >| files from a gallery-style image search engine to a directory
| > >| destination of the user's choosing. Selecting each image with a
| > >| right-click and specifying the directory would be unnecessarily
| > >| tedious for the user.
| >
| > The user only has to navigate to their folder once and it becomes the
| > default folder so subsequent downloads go to that folder. The user can
| > also rename the file if required.
| >
| > >| I did find a way to involk the BrowseForFolder activeX control through
| > >| Javascript out on MSDN. So, I implemented, and tested, the control and
| > >| that seems to be working well. Here's the Javascript that I'm using:
| > >|
| > >| function GetDownloadPath() {
| > >| var frm = document.forms[0];
| > >| var Shell = new ActiveXObject("Shell.Application");
| > >| var Folder = new Object;
| > >|
| > >| Folder = Shell.BrowseForFolder(0, "Choose a download folder", 0);
| > >|
| > >| var FolderItem = new Object;
| > >| FolderItem = Folder.Items().Item();
| > >|
| > >| document.all.item("lblFilepath").InnerText = FolderItem.Path;
| > >| frm.lblFilepath.Text = FolderItem.Path;
| > >| }
| >
| > I get 'Permission Denied' error message (WinXP SP2 IE6.0.29)
| >
| > Error: ActiveXObject is not defined (NS7.1 and Mozilla1.7)
| >
| > >| Now, my out question is how to get the client-side FilePath back to
| > >| the server without a second round-trip to the server.
| >
| > You can't.
| > ---------------------------------------------------------------
| > (e-mail address removed) : Remove your pants to reply
| > ---------------------------------------------------------------
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,269
Messages
2,571,097
Members
48,773
Latest member
Kaybee

Latest Threads

Top