Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> move_uploaded_file, error = 0 ale pliku nie ma :(
pentel
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 3.07.2007

Ostrzeżenie: (0%)
-----


Witam,
Wysyłam zdjęcie za pomocą formularza. Formularz pomijam, oto napisany przeze mnie skrypt php:
  1. <?php
  2. if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
  3. if ( is_uploaded_file($_FILES[$_SESSION['user']]['tmp_name']) ) {
  4.  if ( $_FILES[$_SESSION['user']]['size'] <= (50*1024*1024) ) {
  5. $fileext = explode('.', $_FILES[$_SESSION['user']]['name']);
  6. $fileext = $fileext[1];
  7. switch (true) {
  8.  case ( $fileext == 'jpg' ) :
  9.  case ( $fileext == 'jpeg' ) :
  10.  case ( $fileext == 'png' ) :
  11.  case ( $fileext == 'gif' ) :
  12.  if ( $_FILES[$_SESSION['user']]['type'] == ('image/jpeg' || 'image/png' || 'image/gif') ) {
  13. $uploaddir = 'users/';
  14. $uploadfile = $uploaddir . $_SESSION['user'] . '.' . $fileext;
  15. $moveuploadedfile = move_uploaded_file($_FILES[$_SESSION['user']]['tmp_name'], $uploadfile);
  16. if ( $moveuploadedfile ) {
  17.  $sql = "UPDATE `users` SET `imagename` = '" . $_SESSION['user'] . "." . $fileext . "' WHERE `login` = '" . $_SESSION['user'] . "'";
  18.  $editpic = mysql_query($sql);
  19.  if ($editpic) {
  20. echo 'Your picture has been successfully uploaded. <br />' . "n";
  21. echo '<a href="?x=profile&amp;a=edit">Go to edit profile</a>.' . "n";
  22. echo $_FILES[$_SESSION['user']]['error'];
  23.  } else {
  24. echo 'There was a problem with storing picture info in mysql database. Please, try aga
    in. If that does not help, contact admin. <br/>'
     . "n";
  25. include_once 'inc/formpicture.php';
  26.  }
  27. } else {
  28.  echo 'Could not store your picture. Please, try again. If that does not help, contact 
    admin. <br />'
     . "n";
  29.  include_once 'inc/formpicture.php';
  30. }
  31.  } else {
  32. echo 'The file type is not allowed. <br />' . "n";
  33. include_once 'inc/formpicture.php';
  34.  }
  35.  break;
  36.  default :
  37.  echo 'The file extension is not allowed. <br />' . "n";
  38.  include_once 'inc/formpicture.php';
  39.  break;
  40. }
  41.  } else {
  42. echo 'File size exceeds the maximum allowed value. <br />' . "n";
  43. include_once 'inc/formpicture.php';
  44.  }
  45. } else {
  46.  echo 'There was a problem with uploading your picture. Please, try again. If that does
     not help, contact admin. <br />'
     . "n";
  47.  include_once 'inc/formpicture.php';
  48. }
  49.  } else {
  50. include_once 'inc/formpicture.php';
  51.  }
  52. ?>

Nawet wyświetliłem error, żeby sprawdzić, co jest grane. Error daje 0, czyli że niby wszystko w porządku. Plik przeszedł wszystkie zabezpieczenia, info zapisuje się w bazie danych, ale pliku w końcowym katalogu nie ma. Z tego wnioskuję, że albo move_uploaded_file albo zadziałał, albo przeniósł mi plik nie do tego katalogu co trzeba.
Jeśli może sie to przydać, to host mam na 60free.ovh.org. Próbowałem obie wersje ścieżki:
$uploaddir = 'users/';
oraz
$uploaddir = /home/n/a/z/nazwa/www/users/

Prosze o pomoc, czemu pliku nie ma w zadanym katalogu i co zrobić, żeby był (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Pozdrawiam

Ten post edytował pentel 14.07.2007, 19:01:35
Go to the top of the page
+Quote Post
Ziels
post
Post #2





Grupa: Zarejestrowani
Postów: 235
Pomógł: 2
Dołączył: 30.06.2006

Ostrzeżenie: (0%)
-----


Daj $uploaddir = './users/'
Go to the top of the page
+Quote Post
pentel
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 3.07.2007

Ostrzeżenie: (0%)
-----


Witaj!
No więc działa. Tylko, że plik ma CHMOD 600, więc na stronie obrazek sie nie wyświetli.
Tuż po $moveuploadedfile = move_uploaded_file($_FILES[$_SESSION['user']]['tmp_name'], $uploadfile); dałem więc jeszcze funkcję
  1. <?php
  2. chmod($uploadfile, 0644);
  3. ?>

i działa jak złoto (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Macie więc gotowy skrypt (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam.

Ten post edytował pentel 14.07.2007, 20:03:05
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 14:02