Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] upload i automatyczne chmody
Forum PHP.pl > Forum > Przedszkole
Darekxp
Kombinuje, ale gdzieś zawsze robie mały błąd ponieważ nie moge zrobić aby w uploadzie plików wartość CHMODY była ustawiona automatycznie na 755. Zawsze błędy się pojawiają. Za pomoc z góry dzięki smile.gif

  1. <?php
  2.  $nazwa = $_FILES['plik']['name'];
  3.  $opis = $_POST['opis'];
  4.  $plik = $_FILES['plik']['name'];
  5. if(!is_uploaded_file($_FILES[plik][tmp_name])){
  6. echo "<br><span style=\"color:red\">Wybierz zdjęcie!</span>";
  7.  
  8. exit;}
  9. if($_FILES[plik][error] != 0){
  10. echo "<br><span style=\"color:red\">Wystąpił błąd podczas przesyłania zdjęcia!
  11. Sprawdź czy plik nie jest za duży i spróbuj ponownie! Maxymalny rozmiar to 200kb</span>
  12. ";
  13. exit;}
  14.  
  15. if($_FILES[plik][type] == "image/jpg" ||
  16. $_FILES[plik][type] == "image/jpeg" ||
  17. $_FILES[plik][type] == "image/png" ||
  18. $_FILES[plik][type] == "image/gif"){
  19.  
  20. if(move_uploaded_file($_FILES[plik][tmp_name], "galeria/wasze/".$_FILES[plik][name]))chmod("galeria/wasze/$plik", 0755){ // tu coś nie tak robie, bo bez chmody normalnie uploaduje;p
  21.  
  22.    $connection = @mysql_connect("", "", "")
  23.    or die('Brak połączenia z serwerem MySQL'); mysql_query("SET NAMES 'latin2'");
  24.    $db = @mysql_select_db("", $connection)
  25.    or die('Nie mogę połączyć się z bazą danych');
  26.    
  27.  
  28.    $ins = @mysql_query( "INSERT INTO galeria SET zdjecie='$nazwa', opis='$opis'" );
  29.    
  30.    if($ins) echo "";
  31.    else echo "<center><span style=\"color:red\">Błąd nie udało się dodać Twojej fotki!</span></center>";
  32.    
  33.    mysql_close($connection); echo "<br><span style=\"color:green\">Fotke wrzucono pomyślnie!<img src=http://strona.pl/img/ok.png ></span>
  34. ";  
  35.  
  36. }else{
  37. echo "<br><span style=\"color:red\">Wystąpił nieoczekiwany błąd podczas kopiowania!</span>
  38. ";
  39. }
  40. }else{
  41. echo "<span style=\"color:red\">Niedozwolony format pliku! Możesz dodawać pliki wyłącznie z rozszerzeniem .jpg .png .gif</span>";
  42.  
  43. }
  44. ?>
l0ud
Na oko 2 zasadnicze błędy: funkcja chmod() powinna być wywołana po otwarciu klamry warunku, a nie tak dziwnie w nim (jak teraz):

  1. <?php
  2. if(move_uploaded_file($_FILES['plik']['tmp_name'], "galeria/wasze/".$_FILES['plik']['name'])){
  3. chmod('galeria/wasze/'.$plik, 0755);
  4.  
  5. //itd.
  6. ?>


Drugi błąd, to niekonsekwencja. Na początku utworzyłeś aliasy, których nie wykorzystujesz. Raz elementy tablicy umieszczasz w apostrofach (poprawnie) a raz nie (wiem że to działa, ale tak nie powinno być).
Mimo wszystko chyba bezpośrednią przyczyną problemu jest pierwszy błąd smile.gif
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.