Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: move_uploaded_file błąd
Forum PHP.pl > Forum > PHP
istrd
Witam.
Mam taki problem mam upload obrazków ale wyświetla mi błędy. Nie wiem co jest źle bo wczesniej działało a po zaistalowaniu biblioteki GD już nie działa ! szukam w necie i nic nie pomaga !

  1. Warning: move_uploaded_file() [function.move-uploaded-file]: The second argument to copy() function cannot be a directory in /var/www/dodaj.php on line 71
  2.  
  3. Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpL4xQWK' to 'obraz/' in /var/www/dodaj.php on line 71



  1. <?php
  2.  
  3. {
  4.  
  5.  
  6. $name=$_SESSION['name'];
  7.  
  8.  
  9. echo'<!-- pocztek tabelki z newsami --><table align="center" CELLPADDING=0 CELLSPACING=0>
  10. <tr>
  11. <td class="topn"></td>
  12. </tr>
  13. <td class="tlon">
  14. <div class="news">';
  15.  
  16. <form enctype="multipart/form-data" method="POST">
  17. <input type="text" name="tytul"><b> Podaj tytul<b/> <font color="red"> Pole wymagane</font><br />
  18. <input type="text" name="podpis"><b> Podaj podpis<b/> <font color="red"> Pole wymagane</font><br />
  19. <input type="text" name="zrodlo"><b> Podaj zrodlo<b/> <font color="red"> Pole wymagane</font><br />
  20. <input type="text" name="tagi"><b> Podaj tagi<b/> <font color="white"> Pole nie wymagane</font><br />
  21. <input type="hidden" name="MAX_FILE_SIZE" value="50000" />
  22. <input name="plik" type="file" />
  23. <input type="submit" name="submit" value="submit" />
  24. </form>
  25. ';
  26.  
  27. if(is_file($_FILES['plik']['tmp_name']))
  28. {
  29. $u_plik = $_FILES['plik']['tmp_name'];
  30. $u_nazwa = $_FILES['plik']['name'];
  31. $u_rozmiar = $_FILES['plik']['size'];
  32. $u_typ=$_FILES['plik']['type'];
  33. $log=$_SESSION['user'];
  34. polacz();
  35.  
  36. $ssij=mysql_query("SELECT id FROM newsy ORDER BY id DESC LIMIT 1");
  37. if(mysql_num_rows($ssij)>0)
  38. {
  39. while($y=mysql_fetch_assoc($ssij))
  40. {
  41. //echo'<b>'.$y['id'].' </b></br>';
  42. $d=$y['id'];
  43. $d++;
  44. }
  45.  
  46. }
  47. else
  48. {
  49. $d=1;
  50. }
  51.  
  52. $nazwa='demot'.$d.'_'.$u_nazwa;
  53. $nazwa=$pic;
  54.  
  55.  
  56. if(is_uploaded_file($u_plik))
  57. {
  58.  
  59.  
  60. $tab[]='image/gif';
  61. $tab[]='image/jpg';
  62. $tab[]='image/png';
  63. $tab[]='image/jpeg';
  64. $tab[]='image/JPEG';
  65. if(array_search($u_typ,$tab)!==false)
  66. {
  67.  
  68. $kat="obraz/";
  69. move_uploaded_file($u_plik,$kat.$nazwa);
  70. list($width, $height, $type, $attr) = getimagesize("obraz/$nazwa");
  71. if(($width>1024) or ($height>725))
  72. {
  73. echo "Wysokośc lub szerokośc obrazka jest za duża maksymalna rozdzielczośc obrazka to 240x320 !<br>";
  74. unlink("demoty/$nazwa");
  75.  
  76. }
  77. else
  78. {
  79.  
  80. echo'plik uploadowany<br>';
  81.  
  82. }
  83.  
  84.  
  85. }
  86. else
  87. {
  88. echo"Format pliku jest nie prawidłowy.<br> ";
  89.  
  90. }
  91.  
  92.  
  93. }
  94. }
  95.  
  96.  
  97.  
  98.  
  99. if(isset($_POST["submit"]))
  100. {
  101. if(empty($_POST["tytul"]) or empty($_POST["podpis"]) or empty($_POST["zrodlo"]))
  102. {
  103. echo"Podaj Wszystkie wymagane dane";
  104. }
  105. else
  106. {
  107. $tytul=$_POST['tytul'];
  108. $podpis=($_POST['podpis']);
  109. $zrodlo=$_POST['zrodlo'];
  110. $tagi=$_POST['tagi'];
  111. $akcept=false;
  112. $data=date("Y-m-d");
  113. if(session_is_registered("admin"))
  114. {
  115.  
  116. $autor=$_SESSION["jaki"];
  117. }
  118. else
  119. {
  120. $autor=$_SESSION['name'];
  121.  
  122. }
  123.  
  124. polacz();
  125. $mocne=0;
  126. $slabe=0;
  127. $wysylamy="INSERT INTO `newsy` VALUES ('".$id."','".$tytul."','".$podpis."','".$data."','".$autor."','".$zrodlo."',NOW(),'".$akcept."','".$tagi."','".$pic."','".$mocne."','".$slabe."')";
  128. $wys=mysql_query($wysylamy)or die ("coś nie tak ".mysql_error());
  129. if($wys)echo'dodano';
  130. else echo'Error';
  131.  
  132.  
  133.  
  134. }
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146. }
  147.  
  148.  
  149. echo'</div></td>
  150. <tr>
  151. <td class="doln"></td>
  152. </tr>
  153. </table> <!-- koniec tabeli z newsami -->
  154. ';
  155.  
  156.  
  157.  
  158. }
  159. else
  160. {
  161.  
  162. header("location:index.php");
  163.  
  164. }
  165.  
  166.  
  167.  
  168. ?>
grz3s
Linijki 54, 55 wg powyższego listingu:
nie miałeś czasem na myśli:
  1. $pic='demot'.$d.'_'.$u_nazwa;
  2. $nazwa=$pic;
istrd
Cytat(grz3s @ 19.07.2010, 15:20:16 ) *
Linijki 54, 55 wg powyższego listingu:
nie miałeś czasem na myśli:
  1. $pic='demot'.$d.'_'.$u_nazwa;
  2. $nazwa=$pic;


to jest dobrze. Chodzi o to move_upload problem tkwi w tym to nie ma w tej kwesti nic znaczenia.
agata
następnym razem zlikwiduj te puste linie w poście bo strasznie źle się przegląda tak rozciągnięty kod.

Co do błędów, to wrzucam mój skrypt działający bo też dzisiaj nad tym siedzę.
U mnie zastosowałam 2 razy bibliotekę GD2. żeby użytkownik nie musiał zmieniać wielkości plików skrypt robi to z automatu do podanej wielkości z zachowaniem proporcji.

Drugie użycie do miniatur przy wyświetlaniu.
  1. {
  2. $set_nr = $_POST['number'];
  3. $sek = date('d-m-Y');
  4. for ($i=1; $i<=$set_nr; $i++){
  5. //var_dump($_FILES['file'.$i]);
  6.  
  7. $plik_tmp = $_FILES['file'.$i]['tmp_name'];
  8. $plik_nazwa = $_FILES['file'.$i]['name'];
  9. $plik_rozmiar = $_FILES['file'.$i]['size'];
  10.  
  11. if((strlen($plik_nazwa))>0){
  12.  
  13. if(is_uploaded_file($plik_tmp)) {
  14. move_uploaded_file($plik_tmp, 'system/file/'.$sek.$i.$plik_nazwa);
  15. $plik = 'system/file/'.$sek.$i.$plik_nazwa;
  16.  
  17. if(file_exists($plik)){
  18. $this->load->library('image_lib');
  19. // konfiguracja
  20. $config['image_library'] = 'GD2';
  21. $config['source_image'] = $plik;
  22. $config['new_image'] = $plik;//'system/miniatury/'.$sek.$i.$plik_nazwa;
  23. $config['create_thumb'] = FALSE;
  24. $config['maintain_ratio'] = TRUE;
  25. $config['width'] = 400;
  26. $config['height'] = 400;
  27. // przypisanie konfiguracji
  28. $this->image_lib->initialize($config);
  29. // wykonanie
  30. $this->image_lib->resize();
  31.  
  32. $this->load->library('image_lib');
  33. // konfiguracja
  34. $config['image_library'] = 'GD2';
  35. $config['source_image'] = $plik;
  36. $config['new_image'] = 'system/miniatury/'.$sek.$i.$plik_nazwa;
  37. $config['create_thumb'] = FALSE;
  38. $config['maintain_ratio'] = TRUE;
  39. $config['width'] = 50;
  40. $config['height'] = 50;
  41. // przypisanie konfiguracji
  42. $this->image_lib->initialize($config);
  43. // wykonanie
  44. $this->image_lib->resize();
  45. echo $config['new_image'].'<br/>';
  46. }else{
  47. echo 'Nie mogę utworzyć miniatury, ponieważ nie ma pliku<br/>';
  48. }
  49. }else{
  50. echo 'Plik nie został dodany<br/>';
  51. }
  52. }else{
  53. echo 'Nie załadowano plików do pól nr '.$i.'<br/>';
  54. }
  55. }
  56. }


Mam nadzieję że to Ci jakoś pomoże z znalezieniem błędów, bo podobne są te skrypty (przynajmniej część move_uploaded_file).
GD2 działa jako wbudowana w CodeIgniter.
Cały kod umożliwia ładowanie większej ilości plików na raz.
grz3s
Cytat
The second argument to copy() function cannot be a directory

no jak byk masz napisane ze 2 argument nie może wskazywać na folder a zatem błąd masz w $kat.$nazwa, $kat jest ok ("obraz/") za to nie wyjaśnione dla mnie jest $nazwa - weź sprawdź co Ci wyrzuci przed skryptem.
istrd
Cytat(grz3s @ 19.07.2010, 18:00:24 ) *
no jak byk masz napisane ze 2 argument nie może wskazywać na folder a zatem błąd masz w $kat.$nazwa, $kat jest ok ("obraz/") za to nie wyjaśnione dla mnie jest $nazwa - weź sprawdź co Ci wyrzuci przed skryptem.

$nazwa to nazwa pod jaką ma być wgrany plik.

czyli np. jak jest u_nazwa obraz.jpg to będzei demot_nr_obraz.jpg nr oczywiscie jest pobierany z bazy !
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.