kmarshall has asked for the wisdom of the Perl Monks concerning the following question:

Hello, I have a script that uploads files to a directory on my website. However, these files are initially not able to be read because of CHMOD settings. I can manually go in with a FTP program and change the settings; however, I was wondering if there was a way to change the CHMOD settings as it is uploaded.

Also, with this same script, I have a subroutine that deletes a selected folder. It first is supposed to read the directory, delete all files in the directory, then delete the directory; however, it does not work. It only deletes the folder if it is completely empty. I can not figure out to delete all the files first, with the script, then delete the folder.

Thanks so much,
Kyle

Replies are listed 'Best First'.
Re: Perl CHMOD command
by etm117 (Pilgrim) on May 11, 2005 at 02:58 UTC

    For the chmod piece of the question...

    Here is a snippet to use after the FTP upload is complete using Net::FTP:

    $ftp->site("chmod 600 $uploadedFile");

    Update: made note that this question only referenced the chmod part of the question.

Re: Perl CHMOD command
by jhourcle (Prior) on May 11, 2005 at 03:36 UTC

    From the way in which you've worded the question, I assume that you're using a CGI to upload the files. Permissions on uploaded files are typically set to be rather restrictive, as most people don't trust the files directly, and want to verify them before anyone has a chance to serve them. (to prevent someone from using it to spread trojans, or other malware, and prevent it from being easily traced back to the real originator).

    If the CGI is a perl script, you'll most likely have some clue after the upload what the name of the file is, and can just call perl's chmod command. If you're not sure what the file is (which probably isn't a good sign), you can try setting the umask before file creation.

Re: Perl CHMOD command
by Tanktalus (Canon) on May 11, 2005 at 02:18 UTC

    First - I hope someone else can help you with the permissions settings, I see nothing in the Net::FTP module that allows for setting permissions.

    Second, it would be helpful if you showed your code to see what you're doing so far. When deleting directories, which I have done via FTP as well, you want to start at the bottom, and work your way up the tree. If we saw your code, we may be able to point out how to repair this.

    Thanks,