Can I use JS to search folder and create array from files

M

mdh2972

I would like to put all my .jpg images in a folder into an array to be
viewed. can I use JS to do this automatically. Without having to type
by hand?
 
E

Evertjan.

wrote on 09 jan 2007 in comp.lang.javascript:
I would like to put all my .jpg images in a folder into an array to be
viewed. can I use JS to do this automatically. Without having to type
by hand?

IS "can I use JS to do this automatically" the question?

The answer is yes, you can, but not with js in a html page on the client's
browser without compromizing web security, if your folder is on the
client's hard disk.

Yes you can, if the folder is on a server and the javascript is serverside,
probably on an ASP platform.
 
B

Benjamin

I would like to put all my .jpg images in a folder into an array to be
viewed. can I use JS to do this automatically. Without having to type
by hand?
No, JS cannot access any of the files or directories it sits with on
the server. You'd have to use a server side language like PHP, Perl, or
ASP.
 
R

Randy Webb

Benjamin said the following on 1/9/2007 10:10 PM:
No, JS cannot access any of the files or directories it sits with on
the server.

I don't believe that. You can't get a directory listing, easily, but you
*do* have access to any file that is in the same domain as long as the
server doesn't prohibit access. If JS couldn't access them, AJAX would
be a totally dead technology.
 
L

Laurent Bugnion [MVP]

Hi,

I would like to put all my .jpg images in a folder into an array to be
viewed. can I use JS to do this automatically. Without having to type
by hand?

You don't give enough details to answer that question. For example:

- Is the folder with the files on the client or the server?
- Do you have a possibility to add code to the server? For example
ASP.NET, PHP, ...
- Do you want the page to be refreshed when you navigate to a new folder
or not?

If the folder is on the client, the answer is no in normal web security
conditions. If you have reduced security (for example in the "file"
protocol), then you can access the client's filesystem, but that's
probably not what you want.

If the folder is on the server, then there are solutions using
JavaScript, with or without server counterpart.

Please elaborate.
Laurent
 
B

Benjamin

Randy said:
Benjamin said the following on 1/9/2007 10:10 PM:

I don't believe that. You can't get a directory listing, easily, but you
*do* have access to any file that is in the same domain as long as the
server doesn't prohibit access. If JS couldn't access them, AJAX would
be a totally dead technology.
These are different things. Yes, AJAX can acess files back at the
server, but it has to name them specifically. You can not scan a
directory and retrieve the listing with JS.
 
A

ASM

Benjamin a écrit :
These are different things. Yes, AJAX can acess files back at the
server, but it has to name them specifically. You can not scan a
directory and retrieve the listing with JS.

You probably can use an artifice,
if access to the folder is allowed you can try to open this folder in an
iframe or a popup, then to analyze links listed in this window via DOM
and to extract paths of images to display them somewhere.

OK it is not a livable way to do ... but it is possible.
 
B

Benjamin

ASM said:
Benjamin a écrit :

You probably can use an artifice,
if access to the folder is allowed you can try to open this folder in an
iframe or a popup, then to analyze links listed in this window via DOM
and to extract paths of images to display them somewhere.
This is counting on the server to list the contents of the directory if
there is no index file. Also, you would have to change your script for
every server.
 
D

Dr. No

Benjamin said:
ASM said:
Benjamin a écrit :
You probably can use an artifice,
if access to the folder is allowed you can try to open this folder in an
iframe or a popup, then to analyze links listed in this window via DOM
and to extract paths of images to display them somewhere.
This is counting on the server to list the contents of the directory if
there is no index file. Also, you would have to change your script for
every server.
OK it is not a livable way to do ... but it is possible.

Images on a remote server that you control should be trivial with PHP:

<?php
$localPath = '/usr/home/public_html/images';
$remotePath = 'http://yousite.com/images';
$fileList = '';

echo "<script language=\"JavaScript\" type=\"text/javascript\">\n";
echo "var remotePath = \"$remotePath\"";
echo "var imageFilenamesArr = new Array ("

if (is_dir($localPath)) {
if ($dh = opendir($localPath)) {
while (($file = readdir($dh)) !== false) {
$fileList .= "\"$file\",";
}
closedir($dh);
$fileList = substr($fileList, 0, strlen($fileList) - 1); // Remove the
final comma.
}
}
echo ");\n"
echo "</script>";
?>

That's just a draft, but the idea is that you can use PHP to generate your
JavaScript, and basically initialize variables that require some sort of data
from the server side environment. Its a simple, non-AJAXian solution to the
problem. If you're running 5.2.0, you could easily do this with JSON to, but
without the need to do complex XMLHttpRequest calls.

On a server-side file, you _shouldn't_ be able to access it directly with
JavaScript.
 

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

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top