in reply to Rename Uploaded File
rename "$file_in", "$random_num"."$file_in" or warn "Couldn't rename f +ile: $!\n";
I would put the random number at the end of the file name. Could $file_in have any slashes in it? If it does, then the path you're trying to move it to won't exist.
Also, I would simplify your code by just directly checking to see if the file exists -- no need to iterate through the directory:
if (-e $file_in) { rename($file_in, "$file_in.$random_num"); }
Of course, you probably want to check if "$file_in.$random_num" already exists:
my $f = $file_in; while (-e $f) { $f = "$file_in." . int(rand(100000)); } rename($file_in, $f);
But this doesn't protect you against race conditions - like, what if two people upload the same file at the same time. To protect against that you'll need to find an identifier that uniquely identifies this upload.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Rename Uploaded File
by Anonymous Monk on Feb 12, 2008 at 20:33 UTC | |
|
Re^2: Rename Uploaded File
by Anonymous Monk on Feb 12, 2008 at 19:56 UTC |