login  Naam:   Wachtwoord: 
Registreer je!
 Forum

ftp chmod probleem (Opgelost)

Offline Jootn - 21/08/2010 15:06 (laatste wijziging 21/08/2010 15:19)
Avatar van JootnNieuw lid Goede middag,

ik probeer hier een bestand te uploaden via php... Het rare is, de ene keer lukt het, de andere keer niet 

Mijn map waar ik het naartoe wil is schrijfbaar voor iedereen (777) en er staan al een paar bestanden in die upgeload werden door het php script...

Hier mijn code:
  1. $conn_id = ftp_connect($ftp_host);
  2. $login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);
  3.  
  4. $target_path = "httpdocs/site/Public/Downloads/ftp/";
  5. $source_file = $_FILES['file']['tmp_name'];
  6. $destination_file = $_FILES['file']['name'];
  7.  
  8. ftp_chdir($conn_id, $target_path);
  9. chmod($destination_file,0777);
  10. $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
  11.  
  12. if (!$upload)
  13. {
  14. echo 'Error';
  15. }
  16. else
  17. {
  18. echo 'blaat';
  19. }
  20. ftp_close($conn_id);


En ik krijg telkens volgende foutmelding:
Citaat:
Warning: chmod() [function.chmod]: No such file or directory in httpdocs/site/admin/upload/index.php on line 157


waar in regel 157 het volgende staat:
  1. chmod($destination_file,0777);


Het rare is dat het de ene keer werkt en de andere keer niet 

Groeten

4 antwoorden

Gesponsorde links
Offline Stijn - 21/08/2010 15:23
Avatar van Stijn PHP expert $destination_file bevat enkel de naam van je bestand. Gebruik je PHP.net: move_uploaded_file om je geuploade file in een andere map te schrijven? Als je iets upload staat dit in /tmp en dit moet verplaatst worden. Je kan ook met PHP.net: file_exists controleren of het bestand bestaat. En laatste opmerking is dat chmod 777 te gevaarlijk is aangezien iedereen kan lezen/schrijven/executen. Neem eens 644, dat is veiliger.
Offline Jootn - 21/08/2010 16:38 (laatste wijziging 21/08/2010 16:38)
Avatar van Jootn Nieuw lid
Citaat:
Warning: move_uploaded_file(httpdocs/site/Public/Downloads/menu/oktober.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in httpdocs/site/admin/upload/index.php on line 160

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpAkC4rl' to 'httpdocs/site/Public/Downloads/menu/oktober.pdf' in httpdocs/site/admin/upload/index.php on line 160


Heb nu volgende code:

  1. $conn_id = ftp_connect($ftp_host);
  2. $login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);
  3.  
  4. $target_path = "httpdocs/site/Public/Downloads/ftp/";
  5. $source_file = $_FILES['file']['tmp_name'];
  6. $destination_file = $target_path.$_FILES['file']['name'];
  7.  
  8. //ftp_chdir($conn_id, $target_path);
  9. //chmod($destination_file,0777);
  10.  
  11. if( file_exists($source_file) )
  12. {
  13. move_uploaded_file($source_file,$destination_file);
  14. $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
  15.  
  16. }
  17. else
  18. {
  19. echo "sourc: ".$source_file."<br />";
  20. echo "des: ".$destination_file."<br />";
  21. echo "bestand ".$source_file." bestaat niet!";
  22. exit();
  23.  
  24. }
  25.  
  26.  
  27. if (!$upload)
  28. {
  29. echo 'error';
  30. exit();
  31.  
  32. }
  33. else
  34. {
  35. echo 'blaat';
  36.  
  37. }
  38.  
  39. ftp_close($conn_id);
Offline TotempaaltJ - 21/08/2010 21:38
Avatar van TotempaaltJ PHP interesse 755 is ook goed 
Offline Jootn - 22/08/2010 00:10 (laatste wijziging 22/08/2010 16:47)
Avatar van Jootn Nieuw lid ik denk dat ik het bij 644 zal houden ;) maar daarmee is mijn toch wel wat raar probleem nog altijd niet opgelost ;)

groeten

edit: opgelost...

Wat heb ik gedaan:

Ik heb volgende toegevoegd aan de code:
  1. echo '<pre>';
  2. print_r($_FILES);
  3. echo '</pre>';

Toen zag ik in die array dat de tmp_name niet gezet was, maar dat er een foutmelding (2) gezet was... Beetje zitten opzoeken op het net en dan volgende code tegengekomen:
  1. switch ($_FILES['file'] ['error'])
  2. {
  3. case 1:
  4. print '<p> The file is bigger than this PHP installation allows</p>';
  5. break;
  6. case 2:
  7. print '<p> The file is bigger than this form allows</p>';
  8. break;
  9. case 3:
  10. print '<p> Only part of the file was uploaded</p>';
  11. break;
  12. case 4:
  13. print '<p> No file was uploaded</p>';
  14. break;
  15. }

Toen wist ik dus dat "The file is bigger than this form allows" het probleem was...

En dit heb ik opgelost door volgende regel toe te voegen aan mijn upload formulier:
  1. <input type="hidden" name="MAX_FILE_SIZE" value="512000" />


en heb dan nog de regels "move_uploaded_file" en "chmod" uit mijn code gehaald, en nu werkt alles perfect 

Toch bedankt voor de replys, en hopelijk is iemand anders ook iets met bovenstaande oplossing ;)

groeten
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.218s