Witam
Napisałem funkcję która tworzy miniaturki i zapisuje do innego folderu (działa bez problemów). Oryginalne zdjecia natomiast kopiuje do innego folderu za pomocą copy() i teraz tak: jeżeli z input'a podam scieżkę pliku dokładnie z tego samego katalogu w którym jest skrypt wysli.php to kopiuje "poprawnie" ale jak juz wybiore np C:\xxx\fota.jpg to wyrzuca mi taki blad:

failed to open stream: No such file or directory in <adres pliku ze skryptem>

plus pare innych błędów z miniaturek:

Division by zero in
imagecreatetruecolor(): Invalid image dimensions in
imagecreatefromjpeg('nazwa pliku'): failed to open stream: No such file or directory in
imagecopyresampled(): supplied argument is not a valid Image resource in
imagejpeg(): supplied argument is not a valid Image resource in

kombinuje kilka godzin i nie wiem jak to naprawic.
(ps. nie wiem czemu ale ten skrypt działa jedynie na IE7.0 a na FF i Opera juz nie)
Pozdrawiam

kod z pliku z funkcjami php:
  1. <?php
  2. function img_done($s_i,$d_g_i,$d_t_i,$q_i){
  3. s_mini($s_i,$d_t_i,$q_i);
  4. copy($s_i,$d_g_i);
  5. }
  6.  
  7. function s_mini($s_zdj,$s_d,$s_q){
  8. $zdjecie = $s_zdj;
  9. $q_=$s_q;
  10. $d_t_=$s_d;
  11. $w = 150;
  12. $h = 140;
  13. //header('Content-type: image/jpeg');
  14. list($w_org, $h_org) = getimagesize($zdjecie);
  15.  
  16. $r_org = $w_org/$h_org;
  17.  
  18. if ($w/$h > $r_org) {
  19.  $w = $h*$r_org;
  20. } else {
  21.  $h = $w/$r_org;
  22. }
  23. $img_ = imagecreatetruecolor($w,$h);
  24. $img = imagecreatefromjpeg($zdjecie);
  25. imagecopyresampled($img_, $img, 0, 0, 0, 0, $w, $h, $w_org, $h_org);
  26. imagejpeg($img_, $d_t_, $q_);
  27. }
  28. ?>

w pliku wysli.php odwoluje się w nasepujący sposób:
  1. <?php
  2. img_done($_POST['i_g_'.$h_m_z],$adres_gal[$kat].basename($_POST['i_g_'.$h_m_z]),$adres_thb[$kat].basename($_POST['i_g_'.$h_m_z]),(int)$_POST['q_g']);
  3. ?>


Taaa... Pisze dla tych którzy beda miali podobny problem.
Rozwiazalem go za pomoca JS i pola hidden.
1.
<script>
function adres()
{
var a = document.getElementById( 'aa' ); <- wybor pliku
var b = document.getElementById( 'aa2' ); <- pole hidden
b.value = a.value;
}
</script>
2.
w polu "file" dodajemy onchange="adres();"

3.
a nastepnie w php pobieramy $_POST['aa2'];

I cacy... mamy cały adres i kopiuje plik. Czy ten sposob jest bezpieczny i odpowiedni, nie wiem, działa, jeżeli ktos ma bardziej profesjonalne rozwiązanie to prosze o posty.

Pozdrawiam