|
|
Home /
Groups /
ColdFusion Talk (CF-Talk)
How to Browse and Choose Directory
Hi, all...Rick Faircloth 03/09/05 12:23 P I don't think that the file input type in HTML supports directories.Ben Doom 03/09/05 02:39 P Hmmm...seems like that would be a useful function for CF to have...Rick Faircloth 03/09/05 02:56 P >>Now, I want to allow the client to choose a directory and then loopClaude Schneegans 03/09/05 03:15 P What if I tell the client to use the directory "D:\Photos" or whatever, andRick Faircloth 03/09/05 03:31 P Rick I don't think you have that kind of control over a clientBryan Stevenson 03/09/05 03:37 P Come on, Bryan, fess up! Now I know whereRick Faircloth 03/09/05 03:57 P shhhh..don't tell ;-)Bryan Stevenson 03/09/05 03:58 P I must! It's the only way to get out of the doghouse with my wife! ;o)Rick Faircloth 03/09/05 04:06 P Here's a little javascript majick to do the trick. Create a little javascript like this:Rebecca Wells 03/09/05 05:52 P > Here's a little javascript majick to do the trick. Create aAndrew Tyrone 03/09/05 06:06 P >>When the form is submitted, it will pass the full path of the fileClaude Schneegans 03/09/05 06:12 P Interesting...thanks, Rebecca.Rick Faircloth 03/09/05 06:24 P You know, the only reason I've heard discussed as to why directoryRick Faircloth 03/09/05 06:34 P > You know, the only reason I've heard discussed as to why directoryBen Doom 03/10/05 09:39 A Hi, Ben...Rick Faircloth 03/10/05 09:59 A Rickkola.oyedeji 03/10/05 10:21 A Thanks, Kola...Rick Faircloth 03/10/05 10:26 A Rick,Rick Mason 03/10/05 02:23 P Thanks for the tip, Rick.Rick Faircloth 03/10/05 02:48 P Rick,Rick Mason 03/10/05 06:11 P Thanks for the tip, Mason...Rick Faircloth 03/10/05 06:15 P >>Apparently Google has just updated their free image editor PicassaClaude Schneegans 03/10/05 06:29 P Know of an example somewhere online where that tagRick Faircloth 03/10/05 06:47 P >>Know of an example somewhere online where that tagClaude Schneegans 03/10/05 08:27 P I think you may be intermingling client and server functions.Jerry Johnson 03/09/05 03:04 P It will be a folder somewhere on the client's machine...I have noRick Faircloth 03/09/05 03:27 P The Cold Fusion server cannot see the client's machine, not even for the one file.Jerry Johnson 03/09/05 03:36 P Oh, yeah, yeah...I see what you're saying...I'm not thinking straight.Rick Faircloth 03/09/05 03:57 P Primarily because the <input type="file"... tag is a FILE input tag, not aAaron DC 03/09/05 04:01 P How do you know what's in the directory without accessing the client'sBen Doom 03/09/05 04:03 P Rick,Katz, Dov B \(IT\) 03/09/05 04:05 P As had been said several different ways, the server has no idea what is on the clients machine, CF will never work that way!Ian Skinner 03/09/05 04:15 P Sorry, misspoke a bit. FTP sites aren't mapped to a drive letter, but can be mapped to names in the "my network places" just under "My Computer". It is still a drag and drop to move files from the local to the remote system.Ian Skinner 03/09/05 04:24 P Uh. These weren't pictures of your wife, were they?Dawson, Michael 03/09/05 06:07 P No, they were really good pictures of me *for* my wife... ;o)Rick Faircloth 03/09/05 06:27 P > You know, the only reason I've heard discussed as to whyDave Watts 03/09/05 07:11 P But what if, like with file uploads, the user were designatingRick Faircloth 03/09/05 07:18 P > But what if, like with file uploads, the user were designatingDave Watts 03/09/05 07:28 P Well...that's the user's problem...why not risk multiple filesRick Faircloth 03/09/05 09:20 P >>I don't get it...is Macromedia just trying to protect itself by notClaude Schneegans 03/09/05 09:29 P Interesting...are there no plans to expand this capability in HTML?Rick Faircloth 03/09/05 10:33 P >>are there no plans to expand this capability in HTML?Claude Schneegans 03/10/05 10:11 A There are Java applets that can do this. I'm not sure if any areJames Holmes 03/10/05 01:44 A Erm, how is the server going to grab a file off your PC?Robertson-Ravo, Neil (RX) 03/10/05 10:08 A " >>are there no plans to expand this capability in HTML?"Micha Schopman 03/10/05 10:27 A Thanks, Ian...Rick Faircloth 03/10/05 10:47 A Cold fusion still has nothing to do with this.Jerry Johnson 03/10/05 10:53 A Rickkola.oyedeji 03/10/05 11:05 A I'm not talking about implementing a solution with current functionality,Rick Faircloth 03/10/05 11:15 A I understand that *currently* CFDirectory only has accessRick Faircloth 03/10/05 11:09 A Rick Faircloth wrote:Jochem van Dieten 03/10/05 11:20 A Understood...but it's at the level you're referencing thatRick Faircloth 03/10/05 11:44 A >>I understand that *currently* CFDirectory only has accessClaude Schneegans 03/10/05 04:26 P I honestly have not read all of the posts, personally I felt sick toAdam Haskell 03/10/05 05:04 P Adam...Rick Faircloth 03/10/05 05:16 P Nor did you... all you had to read were the first 5 over and overAdam Haskell 03/10/05 05:26 P As much as looking for a solution to uploading an entire directoryRick Faircloth 03/10/05 05:39 P >>you have to be pretty freakingClaude Schneegans 03/10/05 05:47 P Yeah yeah I know...as for profonity, its just my form of expressionAdam Haskell 03/10/05 06:26 P >>that hwo we handled cookie issues and the results were quite good.Claude Schneegans 03/10/05 06:36 P Might be some misunderstanding there...these were instructiosn on howAdam Haskell 03/10/05 07:08 P Apology accepted...we all have our moments...including me.Rick Faircloth 03/10/05 08:10 P I've begun to learn that the more instructions I put on a siteRick Faircloth 03/10/05 06:46 P >>I don't appreciate the tone of your message or theClaude Schneegans 03/10/05 05:35 P Profanity is just the by-product of a weak mind trying to express itself.Rick Faircloth 03/10/05 05:43 P >>the best answer was givenClaude Schneegans 03/10/05 05:32 P >>On the other hand, you should be able to create a JS widget thatClaude Schneegans 03/10/05 11:07 A Yes, I meant this would only provide the user the ability to create as many BLANK file input fields as they want to upload. They would then be required to complete each field to actually select a file to be uploaded.Ian Skinner 03/10/05 11:10 A a solution i have used in the past is to inform users that to upload aKerry 03/10/05 11:20 A cffile can't do this either.Jerry Johnson 03/10/05 11:22 A Understood...it works with a temp directory off the serverRick Faircloth 03/10/05 11:46 A Rick,Tim Blair 03/10/05 11:58 A > To enable uploading of whole directories the HTTP protocol, theRick Faircloth 03/10/05 12:17 P That part is unlikely ever to change, as there are already third partyAndrew Tyrone 03/10/05 12:32 P Well this does not go very far to changing the standards, but this code will allow a user to upload as many files at they want, but they will have to select each one individually.Ian Skinner 03/10/05 12:30 P Good thoughts, Rebecca...Rick Faircloth 03/10/05 05:32 P Rick FairclothIan Skinner 03/10/05 05:48 P Yes, Ian, I've got it archived actually under code examplesRick Faircloth 03/10/05 05:57 P For galleries, I strongly suggest you consider the applet solution moreKatz, Dov B \(IT\) 03/10/05 05:51 P You're referring to Ian's code, I assume?Rick Faircloth 03/10/05 06:06 P I'm referring to client applets, not javascript. Check jupload.bizKatz, Dov B \(IT\) 03/10/05 06:10 P Thanks for the tip on the site...I'll check it out.Rick Faircloth 03/10/05 06:14 P Hey, that's a pretty cool applet, dov...Rick Faircloth 03/10/05 06:40 P Look at Infomentum's AppletFile. I've used it numerous time and it worksJeff Garza 03/10/05 06:51 P Looks nice...(at least the box is pretty, no demos), but $199...ow...Rick Faircloth 03/10/05 07:18 P > We need a tag that does this sort of multi-file selection....Dave Watts 03/10/05 06:48 P Fair enough...but why not a tag that integrates or deploysRick Faircloth 03/10/05 07:00 P > Fair enough...but why not a tag that integrates or deploys aDave Watts 03/10/05 07:20 P Client side...I hear you...but if it had a small file sizeRick Faircloth 03/10/05 08:27 P > the significant part of the functionalityRick Faircloth 03/10/05 08:28 P Hi, all... This seems simple, but I haven't found a solution... I've always had clients choose a single photo at a time and used CFFILE to upload them one at a time into a photo gallery. Now, I want to allow the client to choose a directory and then loop through the photos and upload them at once. How do I let the client browse and choose a directory like I've always allowed them to browse and choose a single file? (CF 4.5.2) Rick I don't think that the file input type in HTML supports directories. You might have some luck looking into ActiveX extesions, but (of course) that kills cross-browser support.... --Ben Rick Faircloth wrote: ----- Excess quoted text cut - see Original Post for more ----- Hmmm...seems like that would be a useful function for CF to have... Anyway...I guess I can tell the client that they have to place all photos in a particular folder, e.g., "Photo Upload Folder" and then just have CF look there and upload whatever photos it finds once the client creates a photo gallery. Sound like a reasonable approach? Rick I don't think that the file input type in HTML supports directories. You might have some luck looking into ActiveX extesions, but (of course) that kills cross-browser support.... --Ben Rick Faircloth wrote: ----- Excess quoted text cut - see Original Post for more ----- >>Now, I want to allow the client to choose a directory and then loop >>through the photos and upload them at once. I'm affraid this is not possible in HTML. What I've done is have the client to zip all his images in one zip file, even if it does not save space, and send the file. Then I unzip then using CFEXECUTE on a batch file that calls pkunzip. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. What if I tell the client to use the directory "D:\Photos" or whatever, and hardcode that into CF for looping and making the list of photos? Rick >>Now, I want to allow the client to choose a directory and then loop >>through the photos and upload them at once. I'm affraid this is not possible in HTML. What I've done is have the client to zip all his images in one zip file, even if it does not save space, and send the file. Then I unzip then using CFEXECUTE on a batch file that calls pkunzip. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. Rick I don't think you have that kind of control over a client machine...this is for security reasons. Imagine if I could write an app to arbitraily grab files off your computer without you expressly selecting the files ;-) This si not to say there isn't a way of making life easier for the user (easier than selecting each file seperately)....but I don't have an answer for ya...perhaps someone else on the list does Cheers Bryan Stevenson B.Comm. VP & Director of E-Commerce Development Electric Edge Systems Group Inc. phone: 250.480.0642 fax: 250.480.1264 cell: 250.920.8830 e-mail: bryan@electricedgesystems.com web: www.electricedgesystems.com/54 Come on, Bryan, fess up! Now I know where all those photos went! I didn't misplace them, you grabbed 'em off my computer! ;o) Rick Rick I don't think you have that kind of control over a client machine...this is for security reasons. Imagine if I could write an app to arbitraily grab files off your computer without you expressly selecting the files ;-) This si not to say there isn't a way of making life easier for the user (easier than selecting each file seperately)....but I don't have an answer for ya...perhaps someone else on the list does Cheers Bryan Stevenson B.Comm. VP & Director of E-Commerce Development Electric Edge Systems Group Inc. phone: 250.480.0642 fax: 250.480.1264 cell: 250.920.8830 e-mail: bryan@electricedgesystems.com web: www.electricedgesystems.com/54 shhhh..don't tell ;-) Bryan Stevenson B.Comm. VP & Director of E-Commerce Development Electric Edge Systems Group Inc. phone: 250.480.0642 fax: 250.480.1264 cell: 250.920.8830 e-mail: bryan@electricedgesystems.com web: www.electricedgesystems.com/tiny.cfm/54 I must! It's the only way to get out of the doghouse with my wife! ;o) shhhh..don't tell ;-) Bryan Stevenson B.Comm. VP & Director of E-Commerce Development Electric Edge Systems Group Inc. phone: 250.480.0642 fax: 250.480.1264 cell: 250.920.8830 e-mail: bryan@electricedgesystems.com web: www.electricedgesystems.com/tiny.cfm/54 Here's a little javascript majick to do the trick. Create a little javascript like this: <InvalidTag type="text/javascript"> function getFile(f) { f.directory.value = f.uploadFile.value; } </script> Then in the body of the page, your form is like this: <form action="" method="post" enctype="multipart/form-data" name="uploadForm"> Browse to your file directory (pick a file): <input type="file" name="uploadFile" size="35" onblur="getFile(this.form);"><br> <input type="hidden" name="directory"> <input type="submit" value="submit"> </form> When the form is submitted, it will pass the full path of the file that was selected. Then you can use the CF function Get DirectoryFromPath(path) to get just the directory path you want to use. HTH. ----- Excess quoted text cut - see Original Post for more ----- This still won't work. There is no way for CF to access the filesystem, no matter what you do. Only the uploaded file will be available on the server. CF just has access to the file after it is uploaded, not before -- ever. Andy >>When the form is submitted, it will pass the full path of the file that was selected. Then you can use the CF function Get DirectoryFromPath(path) to get just the directory path you want to use. Aren't you mixing client side and server side directories? The form will pass the client side directory/filename while the CF function Get DirectoryFromPath(path) can only return server directories which have nothing in commen with client side. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. Interesting...thanks, Rebecca. So, they would pick the first file, then I would use the path of that file to upload the other files in their directory? Rick Here's a little javascript majick to do the trick. Create a little javascript like this: <InvalidTag type="text/javascript"> function getFile(f) { f.directory.value = f.uploadFile.value; } </script> Then in the body of the page, your form is like this: <form action="" method="post" enctype="multipart/form-data" name="uploadForm"> Browse to your file directory (pick a file): <input type="file" name="uploadFile" size="35" onblur="getFile(this.form);"><br> <input type="hidden" name="directory"> <input type="submit" value="submit"> </form> When the form is submitted, it will pass the full path of the file that was selected. Then you can use the CF function Get DirectoryFromPath(path) to get just the directory path you want to use. HTH. You know, the only reason I've heard discussed as to why directory contents can't be uploaded en masse like single files, is security. But what is the difference, except numbers of files, between a client specifying a single file for upload vs. an entire directory for upload? I don't see what the security issue is... And, after working through some code, I've come to conclude that the only way to upload more than one file at a time is to do what I've done in the past...instead of a single CFFILE in a form, I would include 5 CFFILE's in a form and the client could at least upload 5 files at a time, rather than one. I guess this is the only way, because I see that there's no way for CFDIRECTORY to read the contents of a users directory, even if they specify the directory. Oh well...it was a good discussion. Thanks for the input everyone! Rick Interesting...thanks, Rebecca. So, they would pick the first file, then I would use the path of that file to upload the other files in their directory? Rick Here's a little javascript majick to do the trick. Create a little javascript like this: <InvalidTag type="text/javascript"> function getFile(f) { f.directory.value = f.uploadFile.value; } </script> Then in the body of the page, your form is like this: <form action="" method="post" enctype="multipart/form-data" name="uploadForm"> Browse to your file directory (pick a file): <input type="file" name="uploadFile" size="35" onblur="getFile(this.form);"><br> <input type="hidden" name="directory"> <input type="submit" value="submit"> </form> When the form is submitted, it will pass the full path of the file that was selected. Then you can use the CF function Get DirectoryFromPath(path) to get just the directory path you want to use. HTH. > You know, the only reason I've heard discussed as to why directory > contents can't be uploaded en masse like single files, is security. > > But what is the difference, except numbers of files, between a client > specifying a single file for upload vs. an entire directory for upload? > > I don't see what the security issue is... I want to upload an image of my cat stored in my "My Pictures" folder. While the webserver is at it, it also grabs my pic. Or I want to upload a fanfic in the My Documents folder, and my business plan gets ripped. Or how about this: if you allow recursive directory scanning, if I upload something from the root of C: you could scan the contents of my entire HDD. --Ben Hi, Ben... Now, I'm quickly getting out of my league with possible security breaches, but isn't there someway to protect against unauthorized intrusion into non-specified folders? Like FTP uses to lock a user into a home directory? Again, as far as making sure that only the right documents are available in a particular folder they specify for upload...that's on the user...if you were to choose to upload your business plan by mistake instead of the photo of your cat...whose fault is that? Surely, there should be a way to allow directory upload while limiting security risks. (Maybe not currently, but in future versions of HTML / CF) Rick > You know, the only reason I've heard discussed as to why directory > contents can't be uploaded en masse like single files, is security. > > But what is the difference, except numbers of files, between a client > specifying a single file for upload vs. an entire directory for upload? > > I don't see what the security issue is... I want to upload an image of my cat stored in my "My Pictures" folder. While the webserver is at it, it also grabs my pic. Or I want to upload a fanfic in the My Documents folder, and my business plan gets ripped. Or how about this: if you allow recursive directory scanning, if I upload something from the root of C: you could scan the contents of my entire HDD. --Ben Rick I briefly looked into this for an extension for Farcry, I basically wanted the user to be able to upload a directory of images on the local machine instead of having to select one image at a time, I came up with a list of active-x controls and applets which could accomplish this, I don't have the list on this machine but I'll check my home pc later For now a quick google of file upload applet/active x turns up http://jupload.sourceforge.net/ http://demo.softartisans.com/demo-291.aspx http://www.jscape.com/ftpapplet/ftp_applet_demo.jsp http://www.radinks.com/upload/demo.php (this one allows drag and drop from the desktop :) ). How suitable they are will depending on your requirements and the security implications. HTH Kola ----- Excess quoted text cut - see Original Post for more ----- Thanks, Kola... I'll check into those... And the fact that these are so easily found and, apparently, some of them work so easily, shows that this can and has been done. Therefore, someone believes the functionality is worth the security risk. I'm just surprised this was never implemented in HTML / CF...seems like such an obviously desirable and basic function...one step beyond file upload. Rick Rick I briefly looked into this for an extension for Farcry, I basically wanted the user to be able to upload a directory of images on the local machine instead of having to select one image at a time, I came up with a list of active-x controls and applets which could accomplish this, I don't have the list on this machine but I'll check my home pc later For now a quick google of file upload applet/active x turns up http://jupload.sourceforge.net/ http://demo.softartisans.com/demo-291.aspx http://www.jscape.com/ftpapplet/ftp_applet_demo.jsp http://www.radinks.com/upload/demo.php (this one allows drag and drop from the desktop :) ). How suitable they are will depending on your requirements and the security implications. HTH Kola ----- Excess quoted text cut - see Original Post for more ----- Rick, Ran into the exact same problem you have a couple of years ago. Get your client a copy of webdrive: http://www.southrivertech.com/index.php?pg=./products/webdrive/index Seem to remember that it was around $40 and tech support was great. It maps a drive letter to the FTP directory that you specify. You might even be able to use a gateway if you're running CF-7 to watch that directory and immediately process files uploaded there. Rick Mason ----- Excess quoted text cut - see Original Post for more ----- Thanks for the tip, Rick. I've got a copy I'm testing now for an FTP online storage service. Hadn't thought of using it for this situation. Rick Rick, Ran into the exact same problem you have a couple of years ago. Get your client a copy of webdrive: http://www.southrivertech.com/index.php?pg=./products/webdrive/index Seem to remember that it was around $40 and tech support was great. It maps a drive letter to the FTP directory that you specify. You might even be able to use a gateway if you're running CF-7 to watch that directory and immediately process files uploaded there. Rick Mason ----- Excess quoted text cut - see Original Post for more ----- Rick, Here's another alternative that I just learned about. Apparently Google has just updated their free image editor Picassa and it now lets you email your photos to a Google mail account. I don't have the software but it says that it lets you edit photos and will automatically resize them as well. http://www.google.com/gmail/help/whatsnew.html Just have the gMail account forward it to a pop3 account and grab the photos that way. I am going to investigate this for future use in a project myself. Let me know if you choose this solution and how it works for you. Rick Mason SeedChoices.com On Thu, 10 Mar 2005 14:47:59 -0500, Rick Faircloth <Rick@whitestonemedia.com> wrote: ----- Excess quoted text cut - see Original Post for more ----- Thanks for the tip, Mason... Rick Rick, Here's another alternative that I just learned about. Apparently Google has just updated their free image editor Picassa and it now lets you email your photos to a Google mail account. I don't have the software but it says that it lets you edit photos and will automatically resize them as well. http://www.google.com/gmail/help/whatsnew.html Just have the gMail account forward it to a pop3 account and grab the photos that way. I am going to investigate this for future use in a project myself. Let me know if you choose this solution and how it works for you. Rick Mason SeedChoices.com On Thu, 10 Mar 2005 14:47:59 -0500, Rick Faircloth <Rick@whitestonemedia.com> wrote: ----- Excess quoted text cut - see Original Post for more ----- >>Apparently Google has just updated their free image editor Picassa and it now >>lets you email your photos to a Google mail account. Now this is also an intersting avenue, because in most mail software, one is able to select all files inside a directory in just one operation. Going through Google is not necessary, and a good pop tool like Paul Vernon's CFX_POP3 could be used to get the uploaded files. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. Know of an example somewhere online where that tag can be viewed in use? Demo? Rick >>Apparently Google has just updated their free image editor Picassa and it now >>lets you email your photos to a Google mail account. Now this is also an intersting avenue, because in most mail software, one is able to select all files inside a directory in just one operation. Going through Google is not necessary, and a good pop tool like Paul Vernon's CFX_POP3 could be used to get the uploaded files. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. >>Know of an example somewhere online where that tag >>can be viewed in use? Demo? No, I was just commenting the idea. As I told, I used the zip-unzip approach on one of my sites, but it is in the admin section, not viewable to public. The education of the user is not a problem here since there are just a few persons to use the tool. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. I think you may be intermingling client and server functions. Is the folder in question on a network and accessible from a .cfm page using cfdirectory? or Is the folder in question on the client's machine, remote from the server? Jerry Johnson Web Developer Dolan Media Company >>> Rick@WhiteStoneMedia.com 03/09/05 02:55PM >>> Hmmm...seems like that would be a useful function for CF to have... Anyway...I guess I can tell the client that they have to place all photos in a particular folder, e.g., "Photo Upload Folder" and then just have CF look there and upload whatever photos it finds once the client creates a photo gallery. Sound like a reasonable approach? It will be a folder somewhere on the client's machine...I have no access to it. I was attempting to find a solution to allow a client to choose a directory from within a CF page, like they do with the file form field and its browse button. Only instead of selecting a file, they select a directory. Once they choose the directory, I would have CF get a list of the files (photos) in the directory, loop over the list and upload the photos, instead of having them choose the photos individually. Just figured there was a way for a user to designate a directory in CF by browsing their machine... Rick I think you may be intermingling client and server functions. Is the folder in question on a network and accessible from a .cfm page using cfdirectory? or Is the folder in question on the client's machine, remote from the server? Jerry Johnson Web Developer Dolan Media Company The Cold Fusion server cannot see the client's machine, not even for the one file. The file is actually sent to the server by the client's browser as part of a form. The browser is the software that finds the file and uploads it. The server cannot see any files on the client's hard drive. Let's say you did as intended and had the browser send the folder name to the server as a form variable. The server would receive something like "C:\My photos\" The server would try to look in that folder, and not find any photos, since it would only have access to it's own C: drive, not the client's. Does this make sense? Jerry Johnson Web Developer Dolan Media Company >>> Rick@WhiteStoneMedia.com 03/09/05 03:26PM >>> It will be a folder somewhere on the client's machine...I have no access to it. Just figured there was a way for a user to designate a directory in CF by browsing their machine... Oh, yeah, yeah...I see what you're saying...I'm not thinking straight. I can't pull files off the client's machine... But, wait...if I set up a CFFILE upload function that loops through the directory that the client specifies...why wouldn't that work? I'm not accessing the client's machine (as Bryan mentioned), the client has simply specified a directory for the CFFILE to look in. I would have the code loop through the directory that is specified, "C:\Photos" compile the list, the use CFFILE to upload each photo to my server one at a time... Why wouldn't that work? Rick The Cold Fusion server cannot see the client's machine, not even for the one file. The file is actually sent to the server by the client's browser as part of a form. The browser is the software that finds the file and uploads it. The server cannot see any files on the client's hard drive. Let's say you did as intended and had the browser send the folder name to the server as a form variable. The server would receive something like "C:\My photos\" The server would try to look in that folder, and not find any photos, since it would only have access to it's own C: drive, not the client's. Does this make sense? Jerry Johnson Web Developer Dolan Media Company >>> Rick@WhiteStoneMedia.com 03/09/05 03:26PM >>> It will be a folder somewhere on the client's machine...I have no access to it. Just figured there was a way for a user to designate a directory in CF by browsing their machine... Primarily because the <input type="file"... tag is a FILE input tag, not a "select a directory" tag. Aaron ----- Excess quoted text cut - see Original Post for more ----- one > file. > > The file is actually sent to the server by the client's browser as part of a > form. The browser is the software that finds the file and uploads it. The > server cannot see any files on the client's hard drive. > > Let's say you did as intended and had the browser send the folder name to > the server as a form variable. > The server would receive something like "C:\My photos\" > The server would try to look in that folder, and not find any photos, since ----- Excess quoted text cut - see Original Post for more ----- How do you know what's in the directory without accessing the client's filesystem? CFFILE's "upload" function is a little misnamed. What it actually does is allow you to move/copy/modify the file that has already been pushed to the server by the browser. CFFILE doesn't upload anything, it just shows you what was uploaded. Does that make sense? --Ben Rick Faircloth wrote: ----- Excess quoted text cut - see Original Post for more ----- Rick, CFFILE has no way of knowing the client's file system... CFFILE simply reads encoded data dumped into a HTTP request, converts it to a temp file, and gives the CF code the path to the CF temp file. The browser is the thing which encodes this data destined for the server, and all the server can do is take what it's given. Therefore CFFILE would never be able to read anything other than what the browser gave it. Even applets which offer you a "Select Folder" to upload, ultimately encode each file into a separate form element, and send the bytes in the request body to the server. -Dov Oh, yeah, yeah...I see what you're saying...I'm not thinking straight. I can't pull files off the client's machine... But, wait...if I set up a CFFILE upload function that loops through the directory that the client specifies...why wouldn't that work? I'm not accessing the client's machine (as Bryan mentioned), the client has simply specified a directory for the CFFILE to look in. I would have the code loop through the directory that is specified, "C:\Photos" compile the list, the use CFFILE to upload each photo to my server one at a time... Why wouldn't that work? Rick The Cold Fusion server cannot see the client's machine, not even for the one file. The file is actually sent to the server by the client's browser as part of a form. The browser is the software that finds the file and uploads it. The server cannot see any files on the client's hard drive. Let's say you did as intended and had the browser send the folder name to the server as a form variable. The server would receive something like "C:\My photos\" The server would try to look in that folder, and not find any photos, since it would only have access to it's own C: drive, not the client's. Does this make sense? Jerry Johnson Web Developer Dolan Media Company >>> Rick@WhiteStoneMedia.com 03/09/05 03:26PM >>> It will be a folder somewhere on the client's machine...I have no access to it. Just figured there was a way for a user to designate a directory in CF by browsing their machine... As had been said several different ways, the server has no idea what is on the clients machine, CF will never work that way! This may not be that difficult if you can designate some FTP space on the server where clients can upload files to and then CF can get to them and do the rest of the processing. In windows, FTP sites can be attached to drive letters, thus the client could simply drag all the images from their "C" drive (physical hard drive) to their "I" drive (mapped FTP site). Of course lots more could be done with other FTP clients as well. HTH -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning ...-----Original Message----- ... ...Sent: Wednesday, March 09, 2005 12:57 PM ...To: CF-Talk ...Subject: RE: How to Browse and Choose Directory... ... ...Oh, yeah, yeah...I see what you're saying...I'm not thinking straight. ...I can't pull files off the client's machine... ... ...But, wait...if I set up a CFFILE upload function that loops through the ...directory that the client specifies...why wouldn't that work? ... ...I'm not accessing the client's machine (as Bryan mentioned), ...the client has simply specified a directory for the CFFILE to look in. ... ...I would have the code loop through the directory that is specified, ..."C:\Photos" compile the list, the use CFFILE to upload each photo ...to my server one at a time... ... ...Why wouldn't that work? ... ...Rick ... ... ...-----Original Message----- ... ...Sent: Wednesday, March 09, 2005 3:27 PM ...To: CF-Talk ...Subject: RE: How to Browse and Choose Directory... ... ... ...The Cold Fusion server cannot see the client's machine, not even for the ...one ...file. ... ...The file is actually sent to the server by the client's browser as part ...of a ...form. The browser is the software that finds the file and uploads it. The ...server cannot see any files on the client's hard drive. ... ...Let's say you did as intended and had the browser send the folder name to ...the server as a form variable. ...The server would receive something like "C:\My photos\" ...The server would try to look in that folder, and not find any photos, ...since ...it would only have access to it's own C: drive, not the client's. ... ...Does this make sense? ... ... ...Jerry Johnson ...Web Developer ...Dolan Media Company ... ...>>> Rick@WhiteStoneMedia.com 03/09/05 03:26PM >>> ...It will be a folder somewhere on the client's machine...I have no ...access to it. ... ...Just figured there was a way for a user to designate a directory in CF ...by browsing their machine... ... ... ... ... ... ... Sorry, misspoke a bit. FTP sites aren't mapped to a drive letter, but can be mapped to names in the "my network places" just under "My Computer". It is still a drag and drop to move files from the local to the remote system. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning ...-----Original Message----- ...From: Ian Skinner ...Sent: Wednesday, March 09, 2005 1:13 PM ...To: CF-Talk ...Subject: RE: How to Browse and Choose Directory... ... ...As had been said several different ways, the server has no idea what is ...on the clients machine, CF will never work that way! ... ...This may not be that difficult if you can designate some FTP space on the ...server where clients can upload files to and then CF can get to them and ...do the rest of the processing. In windows, FTP sites can be attached to ...drive letters, thus the client could simply drag all the images from ...their "C" drive (physical hard drive) to their "I" drive (mapped FTP ...site). Of course lots more could be done with other FTP clients as well. ... ...HTH ... ... ...-------------- ...Ian Skinner ...Web Programmer ...BloodSource ...www.BloodSource.org ...Sacramento, CA ... ..."C code. C code run. Run code run. Please!" ...- Cynthia Dunning ... .......-----Original Message----- ....... .......Sent: Wednesday, March 09, 2005 12:57 PM .......To: CF-Talk .......Subject: RE: How to Browse and Choose Directory... ....... .......Oh, yeah, yeah...I see what you're saying...I'm not thinking ...straight. .......I can't pull files off the client's machine... ....... .......But, wait...if I set up a CFFILE upload function that loops through ...the .......directory that the client specifies...why wouldn't that work? ....... .......I'm not accessing the client's machine (as Bryan mentioned), .......the client has simply specified a directory for the CFFILE to look ...in. ....... .......I would have the code loop through the directory that is specified, ......."C:\Photos" compile the list, the use CFFILE to upload each photo .......to my server one at a time... ....... .......Why wouldn't that work? ....... .......Rick ....... ....... .......-----Original Message----- ....... .......Sent: Wednesday, March 09, 2005 3:27 PM .......To: CF-Talk .......Subject: RE: How to Browse and Choose Directory... ....... ....... .......The Cold Fusion server cannot see the client's machine, not even for ...the .......one .......file. ....... .......The file is actually sent to the server by the client's browser as ...part .......of a .......form. The browser is the software that finds the file and uploads it. ...The .......server cannot see any files on the client's hard drive. ....... .......Let's say you did as intended and had the browser send the folder ...name to .......the server as a form variable. .......The server would receive something like "C:\My photos\" .......The server would try to look in that folder, and not find any photos, .......since .......it would only have access to it's own C: drive, not the client's. ....... .......Does this make sense? ....... ....... .......Jerry Johnson .......Web Developer .......Dolan Media Company ....... .......>>> Rick@WhiteStoneMedia.com 03/09/05 03:26PM >>> .......It will be a folder somewhere on the client's machine...I have no .......access to it. ....... .......Just figured there was a way for a user to designate a directory in ...CF .......by browsing their machine... ....... ....... ....... ....... ....... ....... ... ... Uh. These weren't pictures of your wife, were they? I would be glad to sell them back to you... M!ke I must! It's the only way to get out of the doghouse with my wife! ;o) No, they were really good pictures of me *for* my wife... ;o) Rick Uh. These weren't pictures of your wife, were they? I would be glad to sell them back to you... M!ke I must! It's the only way to get out of the doghouse with my wife! ;o) That will NOT do you any good. You will have a string containing the file path of the uploaded file as it existed on the client system (a bit scary that). But you can't do anything with it. The server can not, no how, no way access files directly on the client machine. It does not happen, and you do not want it to happen, or just imagine the hacking nightmares that could be inflicted on the surfing public. The SERVER is the SERVER and the CLIENT is the CLIENT and never shall the twain intertwine. CFDirectory and CFFile are for manipulating files accessible to the server. If you dissect what happened when using CFFile action=upload. The Client's browser read a file, encoded it and sent it to the web server, the web server wrote that file to a temp directory. The CFFile tag then reads the file from the temp directory and does what you request to do with it on the server. It is not reading the file from the client. If you want clients to be able to upload batches of files, check into FTP solutions. There are many and they can be integrated into CF applications in interesting ways. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning ...-----Original Message----- ... ...Sent: Wednesday, March 09, 2005 3:24 PM ...To: CF-Talk ...Subject: RE: How to Browse and Choose Directory... ... ...Interesting...thanks, Rebecca. ... ...So, they would pick the first file, then I would use the path ...of that file to upload the other files in their directory? ... ...Rick ... ... ...-----Original Message----- ... ...Sent: Wednesday, March 09, 2005 4:52 PM ...To: CF-Talk ...Subject: Re: How to Browse and Choose Directory... ... ... ...Here's a little javascript majick to do the trick. Create a little ...javascript like this: ...<InvalidTag type="text/javascript"> ...function getFile(f) { ...f.directory.value = f.uploadFile.value; ...} ...</script> ... ...Then in the body of the page, your form is like this: ... ...<form action="" method="post" enctype="multipart/form-data" ...name="uploadForm"> ...Browse to your file directory (pick a file): <input type="file" ...name="uploadFile" size="35" onblur="getFile(this.form);"><br> ...<input type="hidden" name="directory"> ...<input type="submit" value="submit"> ...</form> ... ...When the form is submitted, it will pass the full path of the file that ...was ...selected. Then you can use the CF function Get DirectoryFromPath(path) to ...get just the directory path you want to use. ...HTH. ... ... ... ... ----- Excess quoted text cut - see Original Post for more ----- Unfortunately, the way file uploads work via HTTP is very simple, and you have no control over it. You can use the HTML INPUT tag to generate a file upload dialog, and you have no control over that either. The only way to bypass these limitations within HTML and HTTP would be to not use HTML and HTTP. For example, some people have suggested ActiveX or Java solutions I think. Those, of course, have their own problems. As far as security goes, the key is that file uploads have to be user-controlled. If you could specify what to upload from your server, whether files or directories or whatever, that would be insecure from your users' perspective. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ Fig Leaf Software provides the highest caliber vendor-authorized instruction at our training centers in Washington DC, Atlanta, Chicago, Baltimore, Northern Virginia, or on-site at your location. Visit http://training.figleaf.com/ for more information! But what if, like with file uploads, the user were designating a folder of files? What's the security difference? Rick ----- Excess quoted text cut - see Original Post for more ----- Unfortunately, the way file uploads work via HTTP is very simple, and you have no control over it. You can use the HTML INPUT tag to generate a file upload dialog, and you have no control over that either. The only way to bypass these limitations within HTML and HTTP would be to not use HTML and HTTP. For example, some people have suggested ActiveX or Java solutions I think. Those, of course, have their own problems. As far as security goes, the key is that file uploads have to be user-controlled. If you could specify what to upload from your server, whether files or directories or whatever, that would be insecure from your users' perspective. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ Fig Leaf Software provides the highest caliber vendor-authorized instruction at our training centers in Washington DC, Atlanta, Chicago, Baltimore, Northern Virginia, or on-site at your location. Visit http://training.figleaf.com/ for more information! > But what if, like with file uploads, the user were designating > a folder of files? What's the security difference? For one thing, a user might not know about all the files within a directory, so they could potentially be manipulated into uploading sensitive files. But in any case, it doesn't matter, since you can't specify a directory to upload from within an HTML form. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ Fig Leaf Software provides the highest caliber vendor-authorized instruction at our training centers in Washington DC, Atlanta, Chicago, Baltimore, Northern Virginia, or on-site at your location. Visit http://training.figleaf.com/ for more information! Well...that's the user's problem...why not risk multiple files with uploading if they're going to risk one? I see your point about the greater risk, but that's where the user needs to be cautious. I can't see not creating a function for uploading an entire directory, which would be very useful, just to reduce security risk...especially since only the user can be held responsible. Besides, the same thing can accomplished with much more difficulty using FTP to provide local access to the directory... I don't get it...is Macromedia just trying to protect itself by not providing this functionality? Trying to protect users? Rick > But what if, like with file uploads, the user were designating > a folder of files? What's the security difference? For one thing, a user might not know about all the files within a directory, so they could potentially be manipulated into uploading sensitive files. But in any case, it doesn't matter, since you can't specify a directory to upload from within an HTML form. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ Fig Leaf Software provides the highest caliber vendor-authorized instruction at our training centers in Washington DC, Atlanta, Chicago, Baltimore, Northern Virginia, or on-site at your location. Visit http://training.figleaf.com/ for more information! >>I don't get it...is Macromedia just trying to protect itself by not >>providing this functionality? MM has nothing to do with this. This is an HTTP specification. I remember back in 95 or so, one couldn't even upload a file larger than about 64k. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. Interesting...are there no plans to expand this capability in HTML? With the growth of broadband, more upload / download potential is needed. One file at a time may have been suitable for '95, but not '05... Rick >>I don't get it...is Macromedia just trying to protect itself by not >>providing this functionality? MM has nothing to do with this. This is an HTTP specification. I remember back in 95 or so, one couldn't even upload a file larger than about 64k. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. >>are there no plans to expand this capability in HTML? I'm not in the secret, but frankly, I doubt. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. There are Java applets that can do this. I'm not sure if any are open-source, but you might find something. Interesting...are there no plans to expand this capability in HTML? With the growth of broadband, more upload / download potential is needed. One file at a time may have been suitable for '95, but not '05... Rick Erm, how is the server going to grab a file off your PC? > You know, the only reason I've heard discussed as to why directory > contents can't be uploaded en masse like single files, is security. > > But what is the difference, except numbers of files, between a client > specifying a single file for upload vs. an entire directory for upload? > > I don't see what the security issue is... I want to upload an image of my cat stored in my "My Pictures" folder. While the webserver is at it, it also grabs my pic. Or I want to upload a fanfic in the My Documents folder, and my business plan gets ripped. Or how about this: if you allow recursive directory scanning, if I upload something from the root of C: you could scan the contents of my entire HDD. --Ben " >>are there no plans to expand this capability in HTML?" No, there are no plans to expand this functionality. There have been requests though to expand functionality in terms of pre-validation filesize, and adding progress support but standards don't change from day to day. The only chance on such functionality is the implementation of proprietary functionality per browser. Micha Schopman Project Manager Modern Media, Databankweg 12 M, 3821 AL Amersfoort Tel 033-4535377, Fax 033-4535388 KvK Amersfoort 39081679, Rabo 39.48.05.380 ------------------------------------------------------------------------ ------------------------------------------------------------------------ ----- Modern Media, Making You Interact Smarter. Onze oplossingen verbeteren de interactie met uw doelgroep. Wilt u meer omzet, lagere kosten of een beter service niveau? Voor meer informatie zie www.modernmedia.nl ------------------------------------------------------------------------ ------------------------------------------------------------------------ ----- Again ColdFusion/Macromedia have nothing to do with this, this is entirely on the client end. You have to look to client technologies: such as JavaScript, ActiveX, Java, C++ and many others. Of course as you head down this road, you are quickly going to run into compatibility issues. For example, ActiveX solutions are going to be Windows/IE only. You will also run into security issues, for example if I turn off active x controls, then I will not be able to use that solutions. If you feel like sticking with Macromedia here is a quick Flash file upload widget I found through Google. It is still single file, but I suspect it could be tweaked to allow directory upload, but then again maybe not. http://www.flashcfm.com/tutorials/flash_file_upload_082801/ -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning ...-----Original Message----- ... ...Sent: Thursday, March 10, 2005 7:26 AM ...To: CF-Talk ...Subject: RE: How to Browse and Choose Directory... ... ...Thanks, Kola... ... ...I'll check into those... ... ...And the fact that these are so easily found and, apparently, ...some of them work so easily, shows that this can and has been done. ...Therefore, someone believes the functionality is worth the security risk. ... ...I'm just surprised this was never implemented in HTML / CF...seems like ...such an obviously desirable and basic function...one step beyond file ...upload. ... ...Rick ... ...-----Original Message----- ...From: kola.oyedeji@iclployalty.com [mailto:kola.oyedeji@iclployalty.com] ...Sent: Thursday, March 10, 2005 10:21 AM ...To: CF-Talk ...Subject: RE: How to Browse and Choose Directory... ... ... ...Rick ... ...I briefly looked into this for an extension for Farcry, I basically ...wanted ...the user to be able to upload a directory of images on the local machine ...instead of having to select one image at a time, I came up with a list of ...active-x controls and applets which could accomplish this, ... ...I don't have the list on this machine but I'll check my home pc later ... ...For now a quick google of file upload applet/active x turns up ... ...http://jupload.sourceforge.net/ ... ...http://demo.softartisans.com/demo-291.aspx ... ...http://www.jscape.com/ftpapplet/ftp_applet_demo.jsp ... ...http://www.radinks.com/upload/demo.php (this one allows drag and drop ...from ...the desktop :) ). ... ...How suitable they are will depending on your requirements and the ...security ...implications. ... ...HTH ... ...Kola ... ... ...> -----Original Message----- ... ...> Sent: 10 March 2005 14:59 ...> To: CF-Talk ...> Subject: RE: How to Browse and Choose Directory... ...> ...> Hi, Ben... ...> ...> Now, I'm quickly getting out of my league with possible security ...> breaches, but isn't there someway to protect against unauthorized ...> intrusion into non-specified folders? Like FTP uses to lock a user ...> into a home directory? ...> ...> Again, as far as making sure that only the right documents are ...available ...> in a particular folder they specify for upload...that's on the ...user...if ...> you ...> were to choose to upload your business plan by mistake instead of the ...> photo of your cat...whose fault is that? ...> ...> Surely, there should be a way to allow directory upload while limiting ...> security risks. (Maybe not currently, but in future versions of HTML / ...> CF) ...> ...> Rick ...> ...> -----Original Message----- ... ...> Sent: Thursday, March 10, 2005 9:37 AM ...> To: CF-Talk ...> Subject: Re: How to Browse and Choose Directory... ...> ...> ...> > You know, the only reason I've heard discussed as to why directory ...> > contents can't be uploaded en masse like single files, is security. ...> > ...> > But what is the difference, except numbers of files, between a client ...> > specifying a single file for upload vs. an entire directory for ...upload? ...> > ...> > I don't see what the security issue is... ...> ...> I want to upload an image of my cat stored in my "My Pictures" folder. ...> While the webserver is at it, it also grabs my pic. Or I want to ...upload ...> a fanfic in the My Documents folder, and my business plan gets ripped. ...> Or how about this: if you allow recursive directory scanning, if I ...> upload something from the root of C: you could scan the contents of my ...> entire HDD. ...> ...> --Ben ...> ...> ...> ...> ...> ... ... ... ... Thanks, Ian... But I've given up on implementing a solution for directory uploads. Too much trouble...I'll just give the client a page with 10 CFFILE upload fields so they can load 10 photos at a time that way. Just thought there would be a way to do it more easily from within CF... Surely, since CF is so Java-based now (I'm still on 4.5.2), there ought to be a way for some of you Java gurus to build a tag that would accomplish this. <CFDIRECTORY Action="Upload"...> Rick Again ColdFusion/Macromedia have nothing to do with this, this is entirely on the client end. You have to look to client technologies: such as JavaScript, ActiveX, Java, C++ and many others. Of course as you head down this road, you are quickly going to run into compatibility issues. For example, ActiveX solutions are going to be Windows/IE only. You will also run into security issues, for example if I turn off active x controls, then I will not be able to use that solutions. If you feel like sticking with Macromedia here is a quick Flash file upload widget I found through Google. It is still single file, but I suspect it could be tweaked to allow directory upload, but then again maybe not. http://www.flashcfm.com/tutorials/flash_file_upload_082801/ -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning ....-----Original Message----- .... ....Sent: Thursday, March 10, 2005 7:26 AM ....To: CF-Talk ....Subject: RE: How to Browse and Choose Directory... .... ....Thanks, Kola... .... ....I'll check into those... .... ....And the fact that these are so easily found and, apparently, ....some of them work so easily, shows that this can and has been done. ....Therefore, someone believes the functionality is worth the security risk. .... ....I'm just surprised this was never implemented in HTML / CF...seems like ....such an obviously desirable and basic function...one step beyond file ....upload. .... ....Rick .... ....-----Original Message----- ....From: kola.oyedeji@iclployalty.com [mailto:kola.oyedeji@iclployalty.com] ....Sent: Thursday, March 10, 2005 10:21 AM ....To: CF-Talk ....Subject: RE: How to Browse and Choose Directory... .... .... ....Rick .... ....I briefly looked into this for an extension for Farcry, I basically ....wanted ....the user to be able to upload a directory of images on the local machine ....instead of having to select one image at a time, I came up with a list of ....active-x controls and applets which could accomplish this, .... ....I don't have the list on this machine but I'll check my home pc later .... ....For now a quick google of file upload applet/active x turns up .... ....http://jupload.sourceforge.net/ .... ....http://demo.softartisans.com/demo-291.aspx .... ....http://www.jscape.com/ftpapplet/ftp_applet_demo.jsp .... ....http://www.radinks.com/upload/demo.php (this one allows drag and drop ....from ....the desktop :) ). .... ....How suitable they are will depending on your requirements and the ....security ....implications. .... ....HTH .... ....Kola .... .... ....> -----Original Message----- .... ....> Sent: 10 March 2005 14:59 ....> To: CF-Talk ....> Subject: RE: How to Browse and Choose Directory... ....> ....> Hi, Ben... ....> ....> Now, I'm quickly getting out of my league with possible security ....> breaches, but isn't there someway to protect against unauthorized ....> intrusion into non-specified folders? Like FTP uses to lock a user ....> into a home directory? ....> ....> Again, as far as making sure that only the right documents are ....available ....> in a particular folder they specify for upload...that's on the ....user...if ....> you ....> were to choose to upload your business plan by mistake instead of the ....> photo of your cat...whose fault is that? ....> ....> Surely, there should be a way to allow directory upload while limiting ....> security risks. (Maybe not currently, but in future versions of HTML / ....> CF) ....> ....> Rick ....> ....> -----Original Message----- .... ....> Sent: Thursday, March 10, 2005 9:37 AM ....> To: CF-Talk ....> Subject: Re: How to Browse and Choose Directory... ....> ....> ....> > You know, the only reason I've heard discussed as to why directory ....> > contents can't be uploaded en masse like single files, is security. ....> > ....> > But what is the difference, except numbers of files, between a client ....> > specifying a single file for upload vs. an entire directory for ....upload? ....> > ....> > I don't see what the security issue is... ....> ....> I want to upload an image of my cat stored in my "My Pictures" folder. ....> While the webserver is at it, it also grabs my pic. Or I want to ....upload ....> a fanfic in the My Documents folder, and my business plan gets ripped. ....> Or how about this: if you allow recursive directory scanning, if I ....> upload something from the root of C: you could scan the contents of my ....> entire HDD. ....> ....> --Ben ....> ....> ....> ....> ....> .... .... .... .... Cold fusion still has nothing to do with this. You are confusing client side Java and server side Java. They run on completely separate machines and have local file access to completely separate harddrives Jerry Johnson Web Developer Dolan Media Company >>> Rick@WhiteStoneMedia.com 03/10/05 10:46AM >>> Surely, since CF is so Java-based now (I'm still on 4.5.2), there ought to be a way for some of you Java gurus to build a tag that would accomplish this. <CFDIRECTORY Action="Upload"...> Rick Jerry outlines why this wouldn't be possible. The most you could do would be to create a custom tag which acts as a wrapper for a java applet (which would *still* be running on the client machine). KOla ----- Excess quoted text cut - see Original Post for more ----- I'm not talking about implementing a solution with current functionality, but creating new functionality that...well...seems to me would operate in the same manner as CFFILE, but on the directory level...where the client specifies a directory for upload instead of a single file... Why is it so much different to do this on the directory level than on the file level? Rick Rick Jerry outlines why this wouldn't be possible. The most you could do would be to create a custom tag which acts as a wrapper for a java applet (which would *still* be running on the client machine). KOla ----- Excess quoted text cut - see Original Post for more ----- I understand that *currently* CFDirectory only has access to my local system...what I'm talking about is developing a tag that allows a user to specify a directory for upload the same way we use CFFile now... I guess the difficulties in doing this are embedded in the details of the HTML standards, etc., that I'm unfamiliar with.... Maybe the FTP protocol could be modified to work within CFDIRECTORY to allow remote access to a folder...I'm way out of my league on the details of this, however... Rick Cold fusion still has nothing to do with this. You are confusing client side Java and server side Java. They run on completely separate machines and have local file access to completely separate harddrives Jerry Johnson Web Developer Dolan Media Company >>> Rick@WhiteStoneMedia.com 03/10/05 10:46AM >>> Surely, since CF is so Java-based now (I'm still on 4.5.2), there ought to be a way for some of you Java gurus to build a tag that would accomplish this. <CFDIRECTORY Action="Upload"...> Rick Faircloth wrote: > I understand that *currently* CFDirectory only has access > to my local system...what I'm talking about is developing > a tag that allows a user to specify a directory for upload the > same way we use CFFile now... > > I guess the difficulties in doing this are embedded in the details of > the HTML standards, etc., that I'm unfamiliar with.... Specifying a directory is not the same as explicitly specifying each of the files in it: http://www.w3.org/TR/html401/appendix/notes.html#forms-security Jochem Understood...but it's at the level you're referencing that perhaps change needs to occur to allow such functionality... Rick Rick Faircloth wrote: > I understand that *currently* CFDirectory only has access > to my local system...what I'm talking about is developing > a tag that allows a user to specify a directory for upload the > same way we use CFFile now... > > I guess the difficulties in doing this are embedded in the details of > the HTML standards, etc., that I'm unfamiliar with.... Specifying a directory is not the same as explicitly specifying each of the files in it: http://www.w3.org/TR/html401/appendix/notes.html#forms-security Jochem >>I understand that *currently* CFDirectory only has access >>to my local system... Well, if by local system you mean the server, then you understand well, depends where you are located ;-/ >>what I'm talking about is developing >>a tag that allows a user to specify a directory for upload the >>same way we use CFFile now... The way CFFILE ACTION="upload" works is that it manages THE file that was sent by the client form and temporarily store on the server by the HTTP server. CFFILE does not grab any file on the client system. As long as browser can send only ONE file at a time, there is no way to develop any tag on the server that will expand this facility. >>I guess the difficulties in doing this are embedded in the details of the HTML standards, etc., You're guessing right. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. I honestly have not read all of the posts, personally I felt sick to my stomach after reading about 15 or so...the best answer was given very very early on. Have the client zip thier files in a directory and upload the zip file. use CFexecute to unzip these files, only I would use Info-ZIP but pkzip would work the same. Once they have been unzip use your bloody f*ing cfdirectory the way it is supposed to work and STFU. Adam H Adam... I don't appreciate the tone of your message or the profanity that you used. I personally don't use profanity and find it very offensive. Concerning the discussion, about upload an entire directory at once...remember, you didn't have to read any of them, much less 15. After awhile, it became clear that the lack of that functionality was because of limitations to HTML and there was nothing that could be done about it in CF. As for the solution you mentioned below, it is a solution, but not as good as the one I currently use, which is more user-friendly to more non-technical people who work with many of the photo galleries I build. Having to use a third-party software application is not desirable. The amount of photos processed per gallery don't justify that much of a work-around. Now...for the future...I would appreciate it if you would not respond to any discussion that I initiate on this list. You style of participation is not welcome. Rick I honestly have not read all of the posts, personally I felt sick to my stomach after reading about 15 or so...the best answer was given very very early on. Have the client zip thier files in a directory and upload the zip file. use CFexecute to unzip these files, only I would use Info-ZIP but pkzip would work the same. Once they have been unzip use your bloody f*ing cfdirectory the way it is supposed to work and STFU. Adam H Nor did you... all you had to read were the first 5 over and over again b/c thats all that was said... you have to be pretty freaking stupid to not know how to zip a folder...in XP ecspecially. Just makle sure to not read my posts in the future...I love to help people but after a while of saying the same thing over and over again people get frustrated... Adam H On Thu, 10 Mar 2005 17:16:21 -0500, Rick Faircloth <Rick@whitestonemedia.com> wrote: ----- Excess quoted text cut - see Original Post for more ----- As much as looking for a solution to uploading an entire directory at once, I was attempting to understand why it wasn't possible to do so. Beyond just looking to solve a current issue, I was asking to be educated on the matter. That's why the discussion went on so long. And we discussed much more than just FTP'ing the files. I also learned that the limitations were inherent to HTML and even to the browser. Good stuff to know for the future. "Let the wise listen and add to their learning, and let the discerning get guidance..." Proverbs 1:5 Rick Nor did you... all you had to read were the first 5 over and over again b/c thats all that was said... you have to be pretty freaking stupid to not know how to zip a folder...in XP ecspecially. Just makle sure to not read my posts in the future...I love to help people but after a while of saying the same thing over and over again people get frustrated... Adam H On Thu, 10 Mar 2005 17:16:21 -0500, Rick Faircloth <Rick@whitestonemedia.com> wrote: ----- Excess quoted text cut - see Original Post for more ----- >>you have to be pretty freaking >>stupid to not know how to zip a folder. The right question here is "Who is the more pretty freaking stupid: the user or the developper who thinks all pretty freaking stupid users know how to zip a folder" ? ;-) -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. Yeah yeah I know...as for profonity, its just my form of expression call me vulgar but I think of it as more me being lazy and not finding other creative ways of putting my point across in a less vulgar but still as offensive manner. If you truewly beleive your clients are so inept at using the computer offer up a simple tutorial on how to zip files together, that hwo we handled cookie issues and the results were quite good. Adam H On Thu, 10 Mar 2005 17:45:32 -0500, Claude Schneegans <schneegans@internetique.com> wrote: ----- Excess quoted text cut - see Original Post for more ----- >>that hwo we handled cookie issues and the results were quite good. I must say I agree with you 100% about cookies. However, for cookies, it is just a question of explaining, for zipping, users have to learn how to do something and DO it, and, and, beleive me, this is quite another story ;-) -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. Might be some misunderstanding there...these were instructiosn on how to turn cookies on off, even for specific sites if the user wanted to get that 'involved', clear cookies, where to find the cookies on your computer ect. So they were instructions on how to DO things :) I'll also take this post as an oppertunity to appoligize for the slightly uncalled for outbust earlier... Adam H On Thu, 10 Mar 2005 18:34:28 -0500, Claude Schneegans <schneegans@internetique.com> wrote: ----- Excess quoted text cut - see Original Post for more ----- Apology accepted...we all have our moments...including me. Rick Might be some misunderstanding there...these were instructiosn on how to turn cookies on off, even for specific sites if the user wanted to get that 'involved', clear cookies, where to find the cookies on your computer ect. So they were instructions on how to DO things :) I'll also take this post as an oppertunity to appoligize for the slightly uncalled for outbust earlier... Adam H On Thu, 10 Mar 2005 18:34:28 -0500, Claude Schneegans <schneegans@internetique.com> wrote: ----- Excess quoted text cut - see Original Post for more ----- I've begun to learn that the more instructions I put on a site alongside the functions a user has to perform, the fewer questions I have to answer and the fewer problems they have... Rick Yeah yeah I know...as for profonity, its just my form of expression call me vulgar but I think of it as more me being lazy and not finding other creative ways of putting my point across in a less vulgar but still as offensive manner. If you truewly beleive your clients are so inept at using the computer offer up a simple tutorial on how to zip files together, that hwo we handled cookie issues and the results were quite good. Adam H On Thu, 10 Mar 2005 17:45:32 -0500, Claude Schneegans <schneegans@internetique.com> wrote: ----- Excess quoted text cut - see Original Post for more ----- user or the developper who thinks all pretty freaking stupid users know how to zip a folder" ? ;-) ----- Excess quoted text cut - see Original Post for more ----- >>I don't appreciate the tone of your message or the >>profanity that you used. Bah,... don't worry, there are always a couple of guys who beleive that insults and profanities can help them making their point... ;-/ -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. Profanity is just the by-product of a weak mind trying to express itself. It's offensive and not welcome...I usually don't say anything about it when others do it...but when it's directed at me, especially with the abusive language Adam used, it's time for a response... Rick >>I don't appreciate the tone of your message or the >>profanity that you used. Bah,... don't worry, there are always a couple of guys who beleive that insults and profanities can help them making their point... ;-/ -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. >>the best answer was given >>very very early on. Have the client zip thier files in a directory and >>upload the zip file. I know, I gave this solution. ;-) And runing pkzip from a bat file is even easier, since you can change directory, etc. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. Well, that would not be the place to work, CF is still the server side of the equation. Now, it does blur the line with tags such as <CFFORM> That create some basic Client side code for you with simple mark up. If something like this was to exist, it would probably be there. On the other hand, you should be able to create a JS widget that allows a user to expand the upload fields by cloning a new one each time a control is clicked. I have done this with basic <input ..> tags, so I would presume that it would work with file inputs. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning ...-----Original Message----- ... ...Sent: Thursday, March 10, 2005 7:47 AM ...To: CF-Talk ...Subject: RE: How to Browse and Choose Directory... ... ...Thanks, Ian... ... ...But I've given up on implementing a solution for directory uploads. ...Too much trouble...I'll just give the client a page with 10 CFFILE upload ...fields ...so they can load 10 photos at a time that way. Just thought there would ...be a way to do it more easily from within CF... ... ...Surely, since CF is so Java-based now (I'm still on 4.5.2), there ought ...to ...be ...a way for some of you Java gurus to build a tag that would accomplish ...this. ... ...<CFDIRECTORY Action="Upload"...> ... ...Rick Confidentiality Notice: This message including any attachments is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender and delete any copies of this message. >>On the other hand, you should be able to create a JS widget that allows a user to expand the upload fields by cloning a new one each time a control is clicked. Even so, there is still the problem to update the file name to grab different files, and there is no mean you can get a list of the files in the client directory. And you cannot either set the file name in the INPUT tag, even if you knew it, I beleive. -- _______________________________________ REUSE CODE! Use custom tags; See http://www.contentbox.com/claude/customtags/tagstore.cfm (Please send any spam to this address: piegeacon@internetique.com) Thanks. Yes, I meant this would only provide the user the ability to create as many BLANK file input fields as they want to upload. They would then be required to complete each field to actually select a file to be uploaded. I think this would not be that bad, because once the first file has been selected, the browsers I have used will remember where the last file selected came from and default to that location the next time the browse features is utilized. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning ...-----Original Message----- ... ...Sent: Thursday, March 10, 2005 8:05 AM ...To: CF-Talk ...Subject: Re: How to Browse and Choose Directory... ... ... >>On the other hand, you should be able to create a JS widget that ...allows a user to expand the upload fields by cloning a new one each time ...a control is clicked. ... ...Even so, there is still the problem to update the file name to grab ...different files, and there is no mean you can get a list of the files in ...the client directory. ...And you cannot either set the file name in the INPUT tag, even if you ...knew it, I beleive. ... ...-- ..._______________________________________ ...REUSE CODE! Use custom tags; ...See http://www.contentbox.com/claude/customtags/tagstore.cfm ...(Please send any spam to this address: piegeacon@internetique.com) ...Thanks. ... ... ... a solution i have used in the past is to inform users that to upload a directory, they will have to zip it. then they upload the zip file, i use java.util.zip to unzip it on the server and its mission accomplished.... Yes, I meant this would only provide the user the ability to create as many BLANK file input fields as they want to upload. They would then be required to complete each field to actually select a file to be uploaded. I think this would not be that bad, because once the first file has been selected, the browsers I have used will remember where the last file selected came from and default to that location the next time the browse features is utilized. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning ....-----Original Message----- .... ....Sent: Thursday, March 10, 2005 8:05 AM ....To: CF-Talk ....Subject: Re: How to Browse and Choose Directory... .... .... >>On the other hand, you should be able to create a JS widget that ....allows a user to expand the upload fields by cloning a new one each time ....a control is clicked. .... ....Even so, there is still the problem to update the file name to grab ....different files, and there is no mean you can get a list of the files in ....the client directory. ....And you cannot either set the file name in the INPUT tag, even if you ....knew it, I beleive. .... ....-- ...._______________________________________ ....REUSE CODE! Use custom tags; ....See http://www.contentbox.com/claude/customtags/tagstore.cfm ....(Please send any spam to this address: piegeacon@internetique.com) ....Thanks. .... .... .... cffile can't do this either. cffile only works on the SERVER machine. It can only read and write files on the SERVER machine. cffile cannot access, read or write or delete files on the CLIENT machine. Jerry Johnson Web Developer Dolan Media Company >>> Rick@WhiteStoneMedia.com 03/10/05 11:14AM >>> I'm not talking about implementing a solution with current functionality, but creating new functionality that...well...seems to me would operate in the same manner as CFFILE, but on the directory level...where the client specifies a directory for upload instead of a single file... Why is it so much different to do this on the directory level than on the file level? Understood...it works with a temp directory off the server after the upload. Now...if we could work with entire directories the same way... Rick cffile can't do this either. cffile only works on the SERVER machine. It can only read and write files on the SERVER machine. cffile cannot access, read or write or delete files on the CLIENT machine. Jerry Johnson Web Developer Dolan Media Company >>> Rick@WhiteStoneMedia.com 03/10/05 11:14AM >>> I'm not talking about implementing a solution with current functionality, but creating new functionality that...well...seems to me would operate in the same manner as CFFILE, but on the directory level...where the client specifies a directory for upload instead of a single file... Why is it so much different to do this on the directory level than on the file level? Well, I think you are still misunderstanding <cffile>. It does not currently get a file from the client (and probably never will). It gets the file from the server. The browser is the agent that gets the file. It then encodes the file into a string and sends that data in the header of the HTTP request. The web server (IIS or Apache for example) takes this data from the HTTP request it received and passes this on the application server (Cold Fusion in the case of this list). The <cffile> tag then does something with this data that is on the server. It never touches the client. CF does blur the server/client a bit with it's <CFForm> on some other related tags. But if you look closely at what these do, they just create JS (and/or Flash/XML as of MX 7) client code and then sends this code downstream to the browser. So something here could theoretically be created along these lines. But are not likely. Actually CFFTP already has directory browsing abilities. But to use them, the client would have to be setup to ACCEPT FTP trafic. Not a likely situation. But, if you want to set up FTP services in your server, you could easily create a spot where users could FTP loads of data to you. They could use any number of tools, including those built in to Windows and/or IE. You then can use CF to further process these files. Many people don't know if you type FTP://www.myFTPSite.com into IE, you get a simple FTP tool that files (or entire directories) can be draged into and out of, on windows OS of course. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning ...-----Original Message----- ... ...Sent: Thursday, March 10, 2005 8:09 AM ...To: CF-Talk ...Subject: RE: How to Browse and Choose Directory... ... ...I understand that *currently* CFDirectory only has access ...to my local system...what I'm talking about is developing ...a tag that allows a user to specify a directory for upload the ...same way we use CFFile now... ... ...I guess the difficulties in doing this are embedded in the details of ...the HTML standards, etc., that I'm unfamiliar with.... ... ...Maybe the FTP protocol could be modified to work within CFDIRECTORY ...to allow remote access to a folder...I'm way out of my league on the ...details of this, however... ... ...Rick Confidentiality Notice: This message including any attachments is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender and delete any copies of this message. Rick, > I understand that *currently* CFDirectory only has access to > my local system...what I'm talking about is developing a tag > that allows a user to specify a directory for upload the same > way we use CFFile now... There will never be a time when <cfdirectory> or <cffile> will have access to a user's file system. This is not due to a lack of foresight on MM's part, but because of security restrictions put in place via the user's operating system and the HTTP protocol. To enable CF to have access to an arbitrary user's file system would also mean that it was open to anyone else who cared to have a look, hackers included. You also have the issue of how to actually get to the user's machine: what would happen to users who are behind a proxy server or firewall? In case there is still confusion between client and server funcionality, I have detailed, step by step, the process of uploading a file via HTTP: 1. An HTML form is displayed to the user in their web browser including a file upload field. 2. The user fills out the form and selects a file to upload 3. The user clicks the "submit" button 4. The web browser software (IE/Firefox/Opera etc) grabs the required file from the user's file system 5. The file data is encoded in the header of the HTTP request and sent to the web server All the above happens on the client side -- there is no interaction from the web server or ColdFusion. 6. The web server recieves the request 7. The uploaded file is decoded and placed in a temporary location by the webserver software (IIS/Apache etc) 8. The uploaded file information is set in the environment variables by the webserver We still haven't got to ColdFusion yet. The above process is the same whether you are using Firefox on a PC and uploading to a webserver running IIS, or if you're using Lynx on a linux terminal uploading to Apache. At this point, the uploaded file is a temporary file sitting somewhere on the webserver (NOT on the client machine). 9. The webserver passes the request off to ColdFusion 10. A <cffile action="upload"> call is made from within a CF template 11. CF moves the file from where it was put in point 7 above (remember -- it's already on the server) to the CF temp directory. At the same time it reads information such as the uploaded file name, MIME type and file size and places the data in the CFFILE scope for you to play with. As you can see, ColdFusion has no access at all to the client machine. It purely acts on data on the server. To enable uploading of whole directories the HTTP protocol, the implementation of that protocol in the user's webbrowser, and possibly the underlying operating system would have to be changed. I find it very very unlikely that this is ever going to happen, mainly for the security reasons that have already been mentioned, but also that it's a hell of a big job! If in the unlikely event it *did* come about, it'd take a long time (years) for the protocol changes to be ratified and updated, and then longer still for the browsers to support the new method. As has been mentioned, one frequently used method of uploading multiple files is for the user to place all the required files in one zip file and upload that. The process would then occur as above, but at the end you would run a <CFEXECUTE> command to unzip the file, and then process all the files uploaded individually. HTH, Tim. -- ------------------------------------------------------- Badpen Tech - CF and web-tech: http://tech.badpen.com/ ------------------------------------------------------- RAWNET LTD - independent digital media agency "We are big, we are funny and we are clever!" New site launched at http://www.rawnet.com/ ------------------------------------------------------- This message may contain information which is legally privileged and/or confidential. If you are not the intended recipient, you are hereby notified that any unauthorised disclosure, copying, distribution or use of this information is strictly prohibited. Such notification notwithstanding, any comments, opinions, information or conclusions expressed in this message are those of the originator, not of rawnet limited, unless otherwise explicitly and independently indicated by an authorised representative of rawnet limited. ------------------------------------------------------- > To enable uploading of whole directories the HTTP protocol, the > implementation of that protocol in the user's webbrowser, and possibly > the underlying operating system would have to be changed. Now that's the part that I'm saying will eventually need to be changed... Rick Rick, > I understand that *currently* CFDirectory only has access to > my local system...what I'm talking about is developing a tag > that allows a user to specify a directory for upload the same > way we use CFFile now... There will never be a time when <cfdirectory> or <cffile> will have access to a user's file system. This is not due to a lack of foresight on MM's part, but because of security restrictions put in place via the user's operating system and the HTTP protocol. To enable CF to have access to an arbitrary user's file system would also mean that it was open to anyone else who cared to have a look, hackers included. You also have the issue of how to actually get to the user's machine: what would happen to users who are behind a proxy server or firewall? In case there is still confusion between client and server funcionality, I have detailed, step by step, the process of uploading a file via HTTP: 1. An HTML form is displayed to the user in their web browser including a file upload field. 2. The user fills out the form and selects a file to upload 3. The user clicks the "submit" button 4. The web browser software (IE/Firefox/Opera etc) grabs the required file from the user's file system 5. The file data is encoded in the header of the HTTP request and sent to the web server All the above happens on the client side -- there is no interaction from the web server or ColdFusion. 6. The web server recieves the request 7. The uploaded file is decoded and placed in a temporary location by the webserver software (IIS/Apache etc) 8. The uploaded file information is set in the environment variables by the webserver We still haven't got to ColdFusion yet. The above process is the same whether you are using Firefox on a PC and uploading to a webserver running IIS, or if you're using Lynx on a linux terminal uploading to Apache. At this point, the uploaded file is a temporary file sitting somewhere on the webserver (NOT on the client machine). 9. The webserver passes the request off to ColdFusion 10. A <cffile action="upload"> call is made from within a CF template 11. CF moves the file from where it was put in point 7 above (remember -- it's already on the server) to the CF temp directory. At the same time it reads information such as the uploaded file name, MIME type and file size and places the data in the CFFILE scope for you to play with. As you can see, ColdFusion has no access at all to the client machine. It purely acts on data on the server. To enable uploading of whole directories the HTTP protocol, the implementation of that protocol in the user's webbrowser, and possibly the underlying operating system would have to be changed. I find it very very unlikely that this is ever going to happen, mainly for the security reasons that have already been mentioned, but also that it's a hell of a big job! If in the unlikely event it *did* come about, it'd take a long time (years) for the protocol changes to be ratified and updated, and then longer still for the browsers to support the new method. As has been mentioned, one frequently used method of uploading multiple files is for the user to place all the required files in one zip file and upload that. The process would then occur as above, but at the end you would run a <CFEXECUTE> command to unzip the file, and then process all the files uploaded individually. HTH, Tim. -- ------------------------------------------------------- Badpen Tech - CF and web-tech: http://tech.badpen.com/ ------------------------------------------------------- RAWNET LTD - independent digital media agency "We are big, we are funny and we are clever!" New site launched at http://www.rawnet.com/ ------------------------------------------------------- This message may contain information which is legally privileged and/or confidential. If you are not the intended recipient, you are hereby notified that any unauthorised disclosure, copying, distribution or use of this information is strictly prohibited. Such notification notwithstanding, any comments, opinions, information or conclusions expressed in this message are those of the originator, not of rawnet limited, unless otherwise explicitly and independently indicated by an authorised representative of rawnet limited. ------------------------------------------------------- That part is unlikely ever to change, as there are already third party solutions which get the job done more efficiently. This type of functionality is very specific, and since there is no incentive to add anything like this (read: no one makes any money) as well as it being inherently difficult to globalize throughout browserland, I think the implementation is best left to third party software. Andy ----- Excess quoted text cut - see Original Post for more ----- Well this does not go very far to changing the standards, but this code will allow a user to upload as many files at they want, but they will have to select each one individually. <cfif IsDefined("form.files")> Hello <cfdump var="#form#"> </cfif> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Multiple File Upload</title> <script type="text/javascript" language="javascript"> var numberOfFiles = 1; function addFile() { var block = document.getElementById("inputs"); //Grab the file input container. var newInput= document.createElement('input'); //Create a new input node newInput.type = "file"; //Set the type of the node to "file" newInput.name = "imageFile" + ++numberOfFiles;//Set the name of the node block.appendChild(newInput); //Append the new node to the input container } </script> <style type="text/css" media="screen"> fieldset#inputs input { width: 50em; display: block; } </style> </head> <body> <form id="files" enctype="multipart/form-data" method="post"> <fieldset id="inputs"><input id="org" type="file" name="imageFile1"></fieldset> <a href="javascript: addFile();">Another File</a><br/> <input type="submit" name="files"> </form> </body> </html> -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning ...-----Original Message----- ... ...Sent: Thursday, March 10, 2005 9:17 AM ...To: CF-Talk ...Subject: RE: How to Browse and Choose Directory... ... ...> To enable uploading of whole directories the HTTP protocol, the ...> implementation of that protocol in the user's webbrowser, and possibly ...> the underlying operating system would have to be changed. ... ...Now that's the part that I'm saying will eventually need to be changed... ... ...Rick ... ... ...-----Original Message----- ... ...Sent: Thursday, March 10, 2005 11:53 AM ...To: CF-Talk ...Subject: RE: How to Browse and Choose Directory... ... ... ...Rick, ... ...> I understand that *currently* CFDirectory only has access to ...> my local system...what I'm talking about is developing a tag ...> that allows a user to specify a directory for upload the same ...> way we use CFFile now... ... ...There will never be a time when <cfdirectory> or <cffile> will have ...access to a user's file system. This is not due to a lack of foresight ...on MM's part, but because of security restrictions put in place via the ...user's operating system and the HTTP protocol. ... ...To enable CF to have access to an arbitrary user's file system would ...also mean that it was open to anyone else who cared to have a look, ...hackers included. You also have the issue of how to actually get to the ...user's machine: what would happen to users who are behind a proxy server ...or firewall? ... ...In case there is still confusion between client and server funcionality, ...I have detailed, step by step, the process of uploading a file via HTTP: ... ...1. An HTML form is displayed to the user in their web browser ... including a file upload field. ...2. The user fills out the form and selects a file to upload ...3. The user clicks the "submit" button ...4. The web browser software (IE/Firefox/Opera etc) grabs the ... required file from the user's file system ...5. The file data is encoded in the header of the HTTP request ... and sent to the web server ... ...All the above happens on the client side -- there is no interaction from ...the web server or ColdFusion. ... ...6. The web server recieves the request ...7. The uploaded file is decoded and placed in a temporary ... location by the webserver software (IIS/Apache etc) ...8. The uploaded file information is set in the environment ... variables by the webserver ... ...We still haven't got to ColdFusion yet. The above process is the same ...whether you are using Firefox on a PC and uploading to a webserver ...running IIS, or if you're using Lynx on a linux terminal uploading to ...Apache. ... ...At this point, the uploaded file is a temporary file sitting somewhere ...on the webserver (NOT on the client machine). ... ...9. The webserver passes the request off to ColdFusion ...10. A <cffile action="upload"> call is made from within a CF ... template ...11. CF moves the file from where it was put in point 7 above ... (remember -- it's already on the server) to the CF temp ... directory. At the same time it reads information such as ... the uploaded file name, MIME type and file size and places ... the data in the CFFILE scope for you to play with. ... ...As you can see, ColdFusion has no access at all to the client machine. ...It purely acts on data on the server. ... ...To enable uploading of whole directories the HTTP protocol, the ...implementation of that protocol in the user's webbrowser, and possibly ...the underlying operating system would have to be changed. I find it ...very very unlikely that this is ever going to happen, mainly for the ...security reasons that have already been mentioned, but also that it's a ...hell of a big job! If in the unlikely event it *did* come about, it'd ...take a long time (years) for the protocol changes to be ratified and ...updated, and then longer still for the browsers to support the new ...method. ... ...As has been mentioned, one frequently used method of uploading multiple ...files is for the user to place all the required files in one zip file ...and upload that. The process would then occur as above, but at the end ...you would run a <CFEXECUTE> command to unzip the file, and then process ...all the files uploaded individually. ... ...HTH, ... ...Tim. ... ... ...-- ...------------------------------------------------------- ...Badpen Tech - CF and web-tech: http://tech.badpen.com/ ...------------------------------------------------------- ... RAWNET LTD - independent digital media agency ... "We are big, we are funny and we are clever!" ... New site launched at http://www.rawnet.com/ ...------------------------------------------------------- ...This message may contain information which is legally ...privileged and/or confidential. If you are not the ...intended recipient, you are hereby notified that any ...unauthorised disclosure, copying, distribution or use ...of this information is strictly prohibited. Such ...notification notwithstanding, any comments, opinions, ...information or conclusions expressed in this message ...are those of the originator, not of rawnet limited, ...unless otherwise explicitly and independently indicated ...by an authorised representative of rawnet limited. ...------------------------------------------------------- ... ... ... ... There's also the whole issue of folder sharing and user permissions that hasn't been discussed. When the client browser pics a directory on the client computer, the path is a local path, i.e. c:\myworkstation\myWorkstationDirectory\. If a server tries to use that path, it translates into a path on the server, not the client computer. For the server to be able to see a directory on the client computer, the path it needs to use is from the server's view, the workstation's network path, i.e. \\mymyworkstation\myWorkstationDirectory AND myWorkstationDirectory needs to be setup to share it's contents. You would have to configure every workstation with this setup and it would only work if the server and workstations are on the same network, like a intranet and there were no firewall issues. It would not work over the Internet. I think it would be a heck of a lot easier to show your users how to use FTP because that's what it's designed to do. Just because you have a hammer, that doesn't make everything a nail. Use the right tool for the job! Good thoughts, Rebecca... But, actually, since the photos in a gallery may only number 20-25, the easiest way is to simply do what I've been doing...supplying 5 CFFILE forms on a page and let them repeat the uploading 4 or 5 times. We're not talking huge numbers of photos, so the process is no big deal. If I had a client who need large numbers of photos processed, then I think the FTP solution would be the way to go....but not in this case. Oh, and no, these are separate website clients, not people or computers inside an intranet where we could do folder sharing. Thanks for the advice, Rick There's also the whole issue of folder sharing and user permissions that hasn't been discussed. When the client browser pics a directory on the client computer, the path is a local path, i.e. c:\myworkstation\myWorkstationDirectory\. If a server tries to use that path, it translates into a path on the server, not the client computer. For the server to be able to see a directory on the client computer, the path it needs to use is from the server's view, the workstation's network path, i.e. \\mymyworkstation\myWorkstationDirectory AND myWorkstationDirectory needs to be setup to share it's contents. You would have to configure every workstation with this setup and it would only work if the server and workstations are on the same network, like a intranet and there were no firewall issues. It would not work over the Internet. I think it would be a heck of a lot easier to show your users how to use FTP because that's what it's designed to do. Just because you have a hammer, that do esn't make everything a nail. Use the right tool for the job! Rick Faircloth But, actually, since the photos in a gallery may only number 20-25, the easiest way is to simply do what I've been doing...supplying 5 CFFILE forms on a page and let them repeat the uploading 4 or 5 times. We're not talking huge numbers of photos, so the process is no big deal. Did you catch my code that lets a user add as many file inputs as they need. Basicly the same idea a yours, but they can do it client side, before anything is uploaded. All normal caviats apply. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning Confidentiality Notice: This message including any attachments is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender and delete any copies of this message. Yes, Ian, I've got it archived actually under code examples and will attempt to implement it...although I shy away from JavaScript usually. We're not the best of friends. :o) Thanks for taking the time to type out a solution. Rick Rick Faircloth But, actually, since the photos in a gallery may only number 20-25, the easiest way is to simply do what I've been doing...supplying 5 CFFILE forms on a page and let them repeat the uploading 4 or 5 times. We're not talking huge numbers of photos, so the process is no big deal. Did you catch my code that lets a user add as many file inputs as they need. Basicly the same idea a yours, but they can do it client side, before anything is uploaded. All normal caviats apply. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning Confidentiality Notice: This message including any attachments is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender and delete any copies of this message. For galleries, I strongly suggest you consider the applet solution more seriously. With some clever programming, you can save tons of time, downsampling the images in the applet before uploading them to the server, making them a fraction of their real size... -Dov Rick Faircloth But, actually, since the photos in a gallery may only number 20-25, the easiest way is to simply do what I've been doing...supplying 5 CFFILE forms on a page and let them repeat the uploading 4 or 5 times. We're not talking huge numbers of photos, so the process is no big deal. Did you catch my code that lets a user add as many file inputs as they need. Basicly the same idea a yours, but they can do it client side, before anything is uploaded. All normal caviats apply. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning Confidentiality Notice: This message including any attachments is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender and delete any copies of this message. You're referring to Ian's code, I assume? Downsampling is a problem. I use a tag from Efflare to handle images once they're on the server, but I have to encourage clients not to upload their full-resolution, large-file images to the server...takes up too much space. I use Efflare's CFX_JPG2 tag (or something similar to that name) for processing images for display, creating new files from the source. However, I'd have to upgrade to their most costly solution CFX_ImageFlare or CFX_ImageCR, to get more image processing capability. As far as me doing some "clever programming" with JavaScript...afraid I can't touch that... :o) Rick For galleries, I strongly suggest you consider the applet solution more seriously. With some clever programming, you can save tons of time, downsampling the images in the applet before uploading them to the server, making them a fraction of their real size... -Dov Rick Faircloth But, actually, since the photos in a gallery may only number 20-25, the easiest way is to simply do what I've been doing...supplying 5 CFFILE forms on a page and let them repeat the uploading 4 or 5 times. We're not talking huge numbers of photos, so the process is no big deal. Did you catch my code that lets a user add as many file inputs as they need. Basicly the same idea a yours, but they can do it client side, before anything is uploaded. All normal caviats apply. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning Confidentiality Notice: This message including any attachments is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender and delete any copies of this message. I'm referring to client applets, not javascript. Check jupload.biz I hacked that applet to downsample images prior to upload. With that applet, I was able to upload my sister's wedding (95 pics) on my site (onlysimchas.com) in less than 10 minutes.... I actually still use a COM object on the server side, though I have my own CFC about to replace it. -dov You're referring to Ian's code, I assume? Downsampling is a problem. I use a tag from Efflare to handle images once they're on the server, but I have to encourage clients not to upload their full-resolution, large-file images to the server...takes up too much space. I use Efflare's CFX_JPG2 tag (or something similar to that name) for processing images for display, creating new files from the source. However, I'd have to upgrade to their most costly solution CFX_ImageFlare or CFX_ImageCR, to get more image processing capability. As far as me doing some "clever programming" with JavaScript...afraid I can't touch that... :o) Rick For galleries, I strongly suggest you consider the applet solution more seriously. With some clever programming, you can save tons of time, downsampling the images in the applet before uploading them to the server, making them a fraction of their real size... -Dov Rick Faircloth But, actually, since the photos in a gallery may only number 20-25, the easiest way is to simply do what I've been doing...supplying 5 CFFILE forms on a page and let them repeat the uploading 4 or 5 times. We're not talking huge numbers of photos, so the process is no big deal. Did you catch my code that lets a user add as many file inputs as they need. Basicly the same idea a yours, but they can do it client side, before anything is uploaded. All normal caviats apply. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning Confidentiality Notice: This message including any attachments is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender and delete any copies of this message. Thanks for the tip on the site...I'll check it out. Rick I'm referring to client applets, not javascript. Check jupload.biz I hacked that applet to downsample images prior to upload. With that applet, I was able to upload my sister's wedding (95 pics) on my site (onlysimchas.com) in less than 10 minutes.... I actually still use a COM object on the server side, though I have my own CFC about to replace it. -dov You're referring to Ian's code, I assume? Downsampling is a problem. I use a tag from Efflare to handle images once they're on the server, but I have to encourage clients not to upload their full-resolution, large-file images to the server...takes up too much space. I use Efflare's CFX_JPG2 tag (or something similar to that name) for processing images for display, creating new files from the source. However, I'd have to upgrade to their most costly solution CFX_ImageFlare or CFX_ImageCR, to get more image processing capability. As far as me doing some "clever programming" with JavaScript...afraid I can't touch that... :o) Rick For galleries, I strongly suggest you consider the applet solution more seriously. With some clever programming, you can save tons of time, downsampling the images in the applet before uploading them to the server, making them a fraction of their real size... -Dov Rick Faircloth But, actually, since the photos in a gallery may only number 20-25, the easiest way is to simply do what I've been doing...supplying 5 CFFILE forms on a page and let them repeat the uploading 4 or 5 times. We're not talking huge numbers of photos, so the process is no big deal. Did you catch my code that lets a user add as many file inputs as they need. Basicly the same idea a yours, but they can do it client side, before anything is uploaded. All normal caviats apply. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning Confidentiality Notice: This message including any attachments is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender and delete any copies of this message. Hey, that's a pretty cool applet, dov... $62...a little pricey, but well worth it when you do that sort of thing a lot... We need a tag that does this sort of multi-file selection.... <CFMULTIFILE> And if it can be pulled off by JUpload, surely it can be done in CF with its Java underpinnings... I'd pay $20 for a tag that would allow multiple file selections... Rick I'm referring to client applets, not javascript. Check jupload.biz I hacked that applet to downsample images prior to upload. With that applet, I was able to upload my sister's wedding (95 pics) on my site (onlysimchas.com) in less than 10 minutes.... I actually still use a COM object on the server side, though I have my own CFC about to replace it. -dov You're referring to Ian's code, I assume? Downsampling is a problem. I use a tag from Efflare to handle images once they're on the server, but I have to encourage clients not to upload their full-resolution, large-file images to the server...takes up too much space. I use Efflare's CFX_JPG2 tag (or something similar to that name) for processing images for display, creating new files from the source. However, I'd have to upgrade to their most costly solution CFX_ImageFlare or CFX_ImageCR, to get more image processing capability. As far as me doing some "clever programming" with JavaScript...afraid I can't touch that... :o) Rick For galleries, I strongly suggest you consider the applet solution more seriously. With some clever programming, you can save tons of time, downsampling the images in the applet before uploading them to the server, making them a fraction of their real size... -Dov Rick Faircloth But, actually, since the photos in a gallery may only number 20-25, the easiest way is to simply do what I've been doing...supplying 5 CFFILE forms on a page and let them repeat the uploading 4 or 5 times. We're not talking huge numbers of photos, so the process is no big deal. Did you catch my code that lets a user add as many file inputs as they need. Basicly the same idea a yours, but they can do it client side, before anything is uploaded. All normal caviats apply. -------------- Ian Skinner Web Programmer BloodSource www.BloodSource.org Sacramento, CA "C code. C code run. Run code run. Please!" - Cynthia Dunning Confidentiality Notice: This message including any attachments is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender and delete any copies of this message. Look at Infomentum's AppletFile. I've used it numerous time and it works quite well for both uploads and multi-file downloads. http://www.infomentum.com/AppletFile/index.html More pricey than $62, but it really is a good applet... Cheers, Jeff Garza ----- Excess quoted text cut - see Original Post for more ----- Looks nice...(at least the box is pretty, no demos), but $199...ow... Maybe I'll get a client that won't balk at the extra cost. Rick Look at Infomentum's AppletFile. I've used it numerous time and it works quite well for both uploads and multi-file downloads. http://www.infomentum.com/AppletFile/index.html More pricey than $62, but it really is a good applet... Cheers, Jeff Garza ----- Excess quoted text cut - see Original Post for more ----- > We need a tag that does this sort of multi-file selection.... > <CFMULTIFILE> > > And if it can be pulled off by JUpload, surely it can be done > in CF with its Java underpinnings... CF and its Java underpinnings run on your web server. The Java applet in question runs on the client. No amount of server-side Java code will allow you to upload entire directories using a browser and an HTML form. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ Fig Leaf Software provides the highest caliber vendor-authorized instruction at our training centers in Washington DC, Atlanta, Chicago, Baltimore, Northern Virginia, or on-site at your location. Visit http://training.figleaf.com/ for more information! Fair enough...but why not a tag that integrates or deploys a java applet as part of its function? Possible? Rick > We need a tag that does this sort of multi-file selection.... > <CFMULTIFILE> > > And if it can be pulled off by JUpload, surely it can be done > in CF with its Java underpinnings... CF and its Java underpinnings run on your web server. The Java applet in question runs on the client. No amount of server-side Java code will allow you to upload entire directories using a browser and an HTML form. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ Fig Leaf Software provides the highest caliber vendor-authorized instruction at our training centers in Washington DC, Atlanta, Chicago, Baltimore, Northern Virginia, or on-site at your location. Visit http://training.figleaf.com/ for more information! > Fair enough...but why not a tag that integrates or deploys a > java applet as part of its function? Possible? I don't see why not. However, the significant part of the functionality would be the client-side part, if you know what I mean. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ Fig Leaf Software provides the highest caliber vendor-authorized instruction at our training centers in Washington DC, Atlanta, Chicago, Baltimore, Northern Virginia, or on-site at your location. Visit http://training.figleaf.com/ for more information! Client side...I hear you...but if it had a small file size and made life easier for the client...that'll fly. Wish I knew enough to build a tag like that...I have enough troubled deploying those that are already built. ;o) How 'bout it, Fig Leaf...want to build and market a new product to the community? I'll be your first customer... btw, I like the wysidraw app...I wonder if that could be used for remote tutoring. I have a daughter who needs tutoring in math and that tutoring requires a student and teacher to be able to "write" on the same sheet of "paper". Can Wysidraw be used with pen and pad input, instead of mouse...Wacom? Rick > Fair enough...but why not a tag that integrates or deploys a > java applet as part of its function? Possible? I don't see why not. However, the significant part of the functionality would be the client-side part, if you know what I mean. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ Fig Leaf Software provides the highest caliber vendor-authorized instruction at our training centers in Washington DC, Atlanta, Chicago, Baltimore, Northern Virginia, or on-site at your location. Visit http://training.figleaf.com/ for more information! > the significant part of the functionality would be the client-side ...and wouldn't that be true of any of the applet solutions proposed in this thread? Rick > Fair enough...but why not a tag that integrates or deploys a > java applet as part of its function? Possible? I don't see why not. However, the significant part of the functionality would be the client-side part, if you know what I mean. Dave Watts, CTO, Fig Leaf Software http://www.figleaf.com/ Fig Leaf Software provides the highest caliber vendor-authorized instruction at our training centers in Washington DC, Atlanta, Chicago, Baltimore, Northern Virginia, or on-site at your location. Visit http://training.figleaf.com/ for more information!
|
Mailing Lists
|
Latest Fusion Authority Articles
|
||||||