Witam,


wrzucając obrazki na serwer chcę, aby istniejące pliki były zastępowane dopiskiem na końcu _1, _2, itd

kod pliku odpowiadającego za to http://wklej.org/hash/1c34a3a2b3/ (linia 217++)

  1. else {
  2. $rndName = generateUniqueId() . "." . getimagetype($path);
  3. $uploadPath = "pictures/" . $rndName;
  4. $tempPath = $_FILES[$name]["tmp_name"];
  5. move_uploaded_file($tempPath, $uploadPath);
  6. }
  7. }
  8. else
  9. die("Sorry ! \"$filename\" is an invalid image.");
  10.  
  11.  
  12. $imagePath = $uploadPath;



zmieniłem na

  1. else {
  2. $rndName = $_FILES[$name]["name"];
  3. $uploadPath = "pictures/" . $rndName;
  4. $segments = pathinfo($uploadPath);
  5. $i=0;
  6. while(file_exists($uploadPath)){
  7. $i++;
  8. $uploadPath = $dir . $segments['filename'] . '_' . $i . '.' . $segments['extension'];
  9. }
  10. $tempPath = $_FILES[$name]["tmp_name"];
  11. move_uploaded_file($tempPath, $uploadPath);
  12. }
  13.  
  14. }
  15. else
  16. die("Sorry ! \"$filename\" is an invalid image.");
  17.  
  18.  
  19. $imagePath = $uploadPath;



ale nie działa dokońca:


-obrazek z nazwą, jak jeszcze nie była wgrywana na serwer wywali błąd, ale wrzuci go do poprawnego katalogu czyli "pictures"


Warning: getimagesize(/tmp/phpMJAPZ6) [function.getimagesize]: failed to open stream: No such file or directory in /home/picl/www/process.php on line 91

Warning: getimagesize(/tmp/phpMJAPZ6) [function.getimagesize]: failed to open stream: No such file or directory in /home/pic/www/process.php on line 91

Warning: getimagesize(/tmp/phpMJAPZ6) [function.getimagesize]: failed to open stream: No such file or directory in /home/pic/www/process.php on line 91
Sorry ! "asd.jpg" is an invalid image.

-nie można wrzucać więcej niż jednego obrazka bo drugi obrazek się nie wrzuci.
-obrazek z istniejącą nazwą na serwerze wrzuci się do głównego katalogu(nazwa się zmieni) zamiast pictures

Pomoc może być płatna.

Dziekuję