Phoinix
open (IMG, ">$file");
binmode IMG;
flock (IMG, 2);
print IMG while (<$image> );
close (IMG);
chmod 0644, $file;
Также имя файла поступает от разных броузеров в разном виде. Это тоже неплохо учесть. (правка: этот момент просьба не учитывать, я ошибся, у тебя тут все ок)
ps: В обоих вариантах использование flock не очень эффективно, при использовании open (IMG, ">$file");