[PHP] Warning: copy() failed to open stream: Permission denied

Warning: copy() failed to open stream: Permission denied [PHP] - PHP - Programmation

Marsh Posté le 09-06-2005 à 20:29:00    

Warning: copy(C:\Documents and Settings\All Users\Documents\Mes images\Échantillons d'images\Nénuphars.jpg): failed to open stream: Permission denied in e:\easyphp1-8\www\up\insert.php on line 15
 
 
ceci merde uniquement quand je ne suis plus en local sinon ca marche  tres bien...
 
je trouve absolument rien!!
 
j'utilise Easyphp 1.8
 
 
 
c'est censé uploader une image venant de l'exterieur sur mon pc.
 
 
 
 
 
 
 

Reply

Marsh Posté le 09-06-2005 à 20:29:00   

Reply

Marsh Posté le 09-06-2005 à 20:31:04    

Vérifie les droits d'accès que tu as sur le fichier.  
Sous nux, "ls -ail"

Reply

Marsh Posté le 09-06-2005 à 20:31:37    

ouai mais justement je suis sur xp!  donc impossible de gerer ca (enfin je pense pas)!

Reply

Marsh Posté le 09-06-2005 à 20:47:59    

ce ki m'enerve c pourkoi es ce qu'en local ca marche tre bien et des que je passe sur internet ca marche plus...???

Reply

Marsh Posté le 09-06-2005 à 22:04:27    

D'un coté, ce n'est pas un serveur de production ? Donc, ce n'est pas si grave...
 
Aufète, qu'entends-tu par "je passe sur internet" ? Tu utilises une redirection genre dyndns ? ip dédié ?

Reply

Marsh Posté le 09-06-2005 à 22:38:58    

je pense qu'il veut dire que c'est quand il copie vers son hébergeur

Reply

Marsh Posté le 09-06-2005 à 23:05:41    

Une fois sur lhebergeur, tu peux modifier les droit du fichier.

Reply

Marsh Posté le 10-06-2005 à 03:56:22    

en fait c pas ca  
 
 
je suis chez moi ca veut dire je passe par http://127.0.0..etc    quand je veux dir le net je passe par pas chez moi ( :lol: ) mais par un autre pc (qui habite loin tres loin...) qui passe par mon adresse ip internet ( http://82. etc.. )  
 
les serveur dédié et companie je m'en tape ;)
 
 
ce qui me fait DéBLOQUé c'est que je me di le dossier sur lequel j'essay d'ecrire il a un chmod pourri mais le prob c'est que je suis sous xp donc pas de prob a ce niveau la...
 
 
Grosse erreur !!!
 
je vais  voir le dossier sur lequel j'essaie d'ecrire et la je vois (tjrs sous xp ) qu'il est en lecture seul! je me dis miracle! le probleme est la je decoche je valide et c dans la poche!
mais voila une fois effectué ca change rien ca merd.. toujours    
 
je vais revoire les proprietés du repertoire et la hop c de nouveau en lecture seul!!!
 
Borde.. de Merd... c'est pas possible je viens de décocher!!
 
et en fait ca reviens a chaque fois!!! aidez moi!!!
 
 
ps: je suis aller voir le .htaccess ou j'ai fait "allowed for all" histoire d'avoir pas de prob!!
 
 
merci de m'aider!!!
 
 

Reply

Marsh Posté le 10-06-2005 à 03:57:49    

ps2 : les fautes dortograf c'est pas ma fote je suis trop nul!!!

Reply

Marsh Posté le 10-06-2005 à 04:01:07    

je peux vous montrer mon code (pour l'instant je suppose que la personne qui vient sait qu'il faut pas mettre un fichier de merde....)
 
le pseudo vient du site precedent  ?pseudo=etc...
 
fichier index.php3

Code :
  1. <?
  2. $pseudo=$_GET['pseudo'];
  3. ?> 
  4. <html>
  5. <title>Forum</title>
  6. <Body bgcolor=#FFFFFF>
  7. <table border=0 BGcolor=#D5E6E1 >
  8. <form method="post" action="insert.php3?pseudo=<? print($pseudo); ?>">
  9.     <tr> <td>    <p>PHOTO : <br>
  10.             <input type="file" size=20 name="fileup" >
  11.           </p>
  12.           <p>&nbsp; </p>
  13.         </td></tr>
  14.       <tr>
  15.         <td width="433">
  16.           <input type="image" src="img/benvoyer.gif" alt="envoyer" name="image2">
  17.           <a href="insert.php"><img src="img/bannuler.gif" border=0 ></a>
  18.         </td>
  19.     </tr>
  20. </form>
  21.   </table>
  22. </center>
  23. </body></html>

     
 
 
 
fichier : insert.php3
 

Code :
  1. <?
  2. session_start();
  3. //$pseudo = $_SESSION['pseudo'];
  4. //$pass =$_SESSION['pass'];
  5. $pseudo = $_GET['pseudo'];
  6. $file = $_POST['fileup'];
  7. $dirname = 'upload';
  8. print("le fichier est en cours d'upload<br>" );
  9. copy($file,$dirname."/".$pseudo.".jpg" );;
  10. print("le fichier est uploader" );
  11. ?>
  12. <html>
  13. <body>
  14. <meta http-equiv="refresh"
  15. content="1;URL=http://xxxxxxxxx.free.fr/photo/insert.php?pseudo=<?
  16. print($pseudo);?>">
  17. </body>
  18. </html>


Message édité par texaff le 10-06-2005 à 13:24:56
Reply

Marsh Posté le 10-06-2005 à 04:01:07   

Reply

Marsh Posté le 10-06-2005 à 08:08:21    

remarque qui n'a rien à voir avec le probleme :
si tu va directement à insert.php3 sans passer par le formulairet'aura des messages d'erreur paske les var $_GET et $_POST n'existeront pas.

Reply

Marsh Posté le 10-06-2005 à 09:15:31    

premierement, as tu tous les droits admin sur ton xp?
Easyphp tourne comme un service ou c'est toi qui le lance?
 
quand tu fais propriété sur ton dossier, click sur l'onglet sécurité et regarde les droits qu'il y a (peut etre meme aller voir le proprietaire dans parametres avancés....)

Reply

Marsh Posté le 10-06-2005 à 12:48:43    

ritzle a écrit :

remarque qui n'a rien à voir avec le probleme :
si tu va directement à insert.php3 sans passer par le formulairet'aura des messages d'erreur paske les var $_GET et $_POST n'existeront pas.


 
 
oui mais ca je m'en tape aussi! je vois pas comment quelqu'un aura envie de venir direct sur cette page ( et puis le site sera utilisé par des glands :D qui n auront absolument pas l'idée de faire ca!!)
 
bon j'essaie de voir le prop du dossier

Reply

Marsh Posté le 10-06-2005 à 12:52:20    

el_gaucho a écrit :

premierement, as tu tous les droits admin sur ton xp?
Easyphp tourne comme un service ou c'est toi qui le lance?
 
quand tu fais propriété sur ton dossier, click sur l'onglet sécurité et regarde les droits qu'il y a (peut etre meme aller voir le proprietaire dans parametres avancés....)


 
 
j'ai tout les droits,  
je le lance a la main  
 
je vois pas ou on voit les droits???
 
merci!

Reply

Marsh Posté le 10-06-2005 à 13:13:15    

j'en ai marre je comprends tjrs pas!!! le coup du lecture seule ca m'etonne!!

Reply

Marsh Posté le 10-06-2005 à 13:41:15    

deja 2 ;; dans :  
copy($file,$dirname."/".$pseudo.".jpg" );;
ensuite tu peux regarder vers la fonction :
 
move_uploaded_file($filename,$destination);
et TRES IMPORTANT, dans ta balise FORM tu dois avoir enctype="multipart/form-data"
 
mais le plus simple c'est que tu ailles voir ce tutorial :
http://dream.media-box.net/index.php?showtopic=4819
 
sinon, le repertoire dans lequel tu veux uploader il est bien sur :
e:\easyphp1-8\www\up\upload\ ?
alors mets bien ton $dirname='e:\easyphp1-8\www\up\upload';
et non $dirname='upload';
 
accessoirement, si le problème ne vient que quand tu essaie d'uploader de l'exterieur : as tu un firewall?

Reply

Marsh Posté le 10-06-2005 à 13:55:39    

oui j'ai un firewall mais il est desactivé (pour loccasion)
 
je suis derriere une routeur mais j'ai di au routeur de roouter tout le port 80 sur ma poire
 
j'essaie ce ke tu me di je regarde le tuto et je tien au courant
 
merci!
 

Reply

Marsh Posté le 10-06-2005 à 15:04:01    

ok le prob est résolu!!
 
merci
 
c'etait $file = $_POST['fileup'];  
 
il fallait utilisé
 
$file = $_POST['fileup']['tmp_name'];
 
merci pour tout
 

Reply

Marsh Posté le 25-08-2006 à 09:13:53    

Salut,
je viens de trouver ce post en faisant une recherche.
J'ai le même problème que texaff :
en local, l'upload de fichiers contenus dans mon répertoire easyPHP http://127.0.0.1/ ce passe sans problème. Par contre, dès que je veux aller chercher un fichier sur un lecteur réseau ou même une autre partition de mon DD ça plante : permission denied. Pourtant j'ai bien le controle total sur tout.
quelq'un peut-il m'aider SVP ?


Message édité par snp le 25-08-2006 à 09:14:12
Reply

Marsh Posté le 25-08-2006 à 10:29:00    

Voici mon code :
FORMULAIRE classique en POST:

Code :
  1. <input type="file" name="doc_joint"> <span class="Style1">(si plusieurs, les zipper)


 
fichier de TRAITEMENT :

Code :
  1. $doc_joint=$_POST['doc_joint'];
  2. $fp = fopen("$doc_joint", "w" );
  3. $bin_att = fread($fp, filesize("$doc_joint " ));
  4. fclose($fp);


 
et mon message d'erreur :
Warning fopen(le fichier à uploader avec son chemin.jpg): failed to open stream: Permission denied in le fichier de traitement.php on line 207
 
warning filesize (le fichier à uploader avec son chemin.jpg) (errno=2 - Nos such file or directory) on line 208
 
warning fread(): supplied argument is not a valid stream ressource in line 208
 
warning fclose(): supplied argument is not a valid stream ressource in line 209
 
Merci de m'aider !!

Message cité 1 fois
Message édité par snp le 25-08-2006 à 10:39:25
Reply

Marsh Posté le 25-08-2006 à 11:13:51    

snp a écrit :

Voici mon code :
FORMULAIRE classique en POST:

Code :
  1. <input type="file" name="doc_joint"> <span class="Style1">(si plusieurs, les zipper)


 
fichier de TRAITEMENT :

Code :
  1. $doc_joint=$_POST['doc_joint'];
  2. $fp = fopen("$doc_joint", "w" );
  3. $bin_att = fread($fp, filesize("$doc_joint " ));
  4. fclose($fp);


 
et mon message d'erreur :
Warning fopen(le fichier à uploader avec son chemin.jpg): failed to open stream: Permission denied in le fichier de traitement.php on line 207
 
warning filesize (le fichier à uploader avec son chemin.jpg) (errno=2 - Nos such file or directory) on line 208
 
warning fread(): supplied argument is not a valid stream ressource in line 208
 
warning fclose(): supplied argument is not a valid stream ressource in line 209
 
Merci de m'aider !!


 

texaff a écrit :

ok le prob est résolu!!
 
merci
 
c'etait $file = $_POST['fileup'];  
 
il fallait utilisé
 
$file = $_POST['fileup']['tmp_name'];
 
merci pour tout


 
 
:??:

Reply

Marsh Posté le 25-08-2006 à 11:15:36    

ça marche pas mieux alors j'ai viré cette variable ['tmp_name']

Reply

Marsh Posté le 25-08-2006 à 11:17:25    

euh oui mais non, c'est quand même tmp_name qu'il faut utiliser.
 
et tu ne devrais pas l'ouvrir en lecture plutot qu'en écriture?:o

Reply

Marsh Posté le 25-08-2006 à 11:27:25    

déjà essayé aussi...
je remet tmp_name alors.

Reply

Marsh Posté le 26-08-2006 à 11:15:02    

up

Reply

Marsh Posté le 28-08-2006 à 12:37:27    

up svp

Reply

Marsh Posté le 28-08-2006 à 12:44:38    

down.[:dawa]

Reply

Marsh Posté le 29-08-2006 à 10:49:10    

up

Reply

Marsh Posté le 30-08-2006 à 10:16:50    

up

Reply

Marsh Posté le 12-09-2006 à 12:40:43    

up

Reply

Marsh Posté le 12-09-2006 à 13:06:12    

faut pas faire :  
$doc_joint = $_POST['doc_joint'];
 
mais :  
$doc_joint = $_FILES['doc_joint']['tmp_name'];
 
C'est vrai qu'il était difficile d'obtenir cette information qui nécessitait au moins dix secondes de recherche sur google. Ca méritait au moins d'attendre la réponse pdt 15 jours.

Reply

Marsh Posté le 12-09-2006 à 13:08:26    

mais j'ai déjà essayé et ça ne marche pas mieux !!!!!

Reply

Marsh Posté le 12-09-2006 à 13:09:59    

bah essaye de débugger : fais un  
print_r($_FILES)
et dis-nous ce que ça met.
 
Ton hébergeur autorise l'upload de fichier au moins ? Tu as accès au php.ini ?

Reply

Marsh Posté le 12-09-2006 à 13:15:07    

je suis en local pr le moment avec easyphp parce que c'est pour une base locale partagée (intranet).
ce que je ne comprends pas c'est qu'il me met un undefined index !
je met mon code complet :

Code :
  1. <?php
  2. include_once("../../outils/html_mime/html_mime_mail.inc" );
  3. require("../../outils/pdf/fpdf.php" );
  4. //**********************************************************************************************//   
  5. //******************************************VERIFICATION******************************************//   
  6. //**********************************************************************************************//     
  7. if (isset($_FILES['doc_joint']))
  8. {
  9.        
  10. $doc_joint=$_FILES['doc_joint']['tmp_name'];
  11. }
  12. //**********************************************************************************************//   
  13. //******************************************CREATION PDF******************************************//   
  14. //**********************************************************************************************//  
  15. //*******************************VARIABLES RECUPEREES**********************************//
  16. include '../../admin/variables.php';
  17. $utilisateur=$_POST['utilisateurs'];
  18. $delai=$_POST['delai'];
  19. $lieu=$_POST['lieu'];
  20. $projet=$_POST['projet'];
  21. $description=$_POST['description'];
  22. $doc_joint = $_FILES['doc_joint']['tmp_name'];
  23. $daei=$_POST['daei'];
  24. $section=$_POST['section'];
  25. $budget=$_POST['compte'];
  26. $today = date ('j-m-Y');
  27. //*******************************MISE EN PAGE**********************************//   
  28.   $pdf->SetTextColor(0,0,230);
  29.   $pdf->SetFont('Arial','B',12);
  30.   $pdf->Cell(0,5,"DOCUMENTS JOINTS : ",1,1,'C');
  31.   $pdf->Ln(10);
  32. if (!empty($doc_joint)){
  33.    $doc = substr(strrchr($doc_joint, "\\" ), 1);
  34.    
  35.   $pdf->SetFont('Arial','',9);
  36.   $pdf->Cell(0,5,"$doc",0,1,'C');
  37.   $pdf->Ln(10);
  38.   }
  39.  
  40.   else {
  41.   $pdf->SetFont('Arial','',9);
  42.   $pdf->Cell(0,5,"PAS DE DOCUMENTS FOURNIS",0,1,'C');
  43.   $pdf->Ln(10);
  44.   }
  45.  
  46.  
  47. //**********************************************************************************************//   
  48. //******************************************ENVOI MAIL******************************************//   
  49. //**********************************************************************************************//
  50. function envoi_mail($name_from, $mail_from, $name_to, $mail_to)
  51. {
  52. include '../../admin/variables.php';
  53. $utilisateur=$_POST['utilisateurs'];
  54. $doc_joint = $_FILES['doc_joint']['tmp_name'];
  55. $projet=$_POST['projet'];
  56. $today = date (" j-m-Y" );
  57.   $nom_pdf = "Demande_Fabrication $utilisateur $projet $today.pdf";
  58.   $url = $rep_dde_fab.$nom_pdf;
  59.       //creation nouveau mail (taille MAX, "norme)"
  60.       $mon_mail = new html_mime_mail(4096000, "iso-8859-1" );
  61.       //fichier pdf créé grâce à la fonction generation_pdf() en piece jointe
  62.       $nom_dde_envoye="Demande_Fabrication $utilisateur $projet.pdf";
  63.   $mon_mail->add_attach(generation_pdf(), "$nom_dde_envoye", "application/octet-stream" );
  64.  
  65.  
  66. if (!empty($doc_joint))
  67. {
  68.   //Les pièces jointes
  69.      $fp = fopen("$doc_joint", "r" );
  70. $bin_att = fread($fp, filesize("$doc_joint " ));
  71. fclose($fp);
  72.   //nom des pièces jointes
  73.      $mon_mail->add_attach($bin_att, "$doc_joint", "application/octet-stream" );
  74.    
  75. }
  76.     else
  77. {}
  78.  
  79. ?>


Message édité par snp le 12-09-2006 à 13:43:08
Reply

Marsh Posté le 12-09-2006 à 13:27:07    

T'as pas plus gros comme paté?[:dawao]
C'est trop compliqué de mettre que ce qui peut servir?
C'est infaisable de mettre le message d'erreur que tu obtiens?[:autobot]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-09-2006 à 13:35:59    

j'ai tout mis pour que vous compreniez la mécanique du truc...
pour le msg d'erreur c'est ça :
Notice undefined index doc_joint lignes 189 et 85.
Ce que je trouve bizarre c'est que pour un fichier compris sous le repertoire d'easyphp/www ça marche ss pb mais dès que je prend un fichier d'ailleurs ça foire.
je viens de remarquer que j'obtiens ces msg a chaque fois (quelque soit le fichier et son emplacement) qd je met  
$doc_joint = $_FILES['doc_joint']['tmp_name'];

Reply

Marsh Posté le 12-09-2006 à 13:38:11    

snp a écrit :

Notice undefined index doc_joint lignes 189 et 85.


[:mlc]
 
montre le code de ton formulaire.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-09-2006 à 13:38:35    

autre chose etrange : le mail envoyé contient la piece jointe mais fait 0Ko. de plus, le nom de la piece jointe apparait bien sur le PDF généré !
mais avec $doc_joint = $_POST['doc_joint'];

Reply

Marsh Posté le 12-09-2006 à 13:39:31    

la partie concernée du formulaire :

Code :
  1. <!-------------------------PIECES JOINTES---------------------------->
  2. <div align="center" class="IntraBE2">
  3. <p>DOCUMENT JOINT</p>
  4. <span class="IntraBE">
  5. PLANS, NORMES, CDC etc... : <input type="file" name="doc_joint"> <span class="Style1"></span>
  6. <br />
  7.  
  8.      
  9. </div>
  10. <hr />


Message édité par snp le 12-09-2006 à 13:39:49
Reply

Marsh Posté le 12-09-2006 à 13:41:18    

ok, fais un print_r($_FILES) dans le script, pour voir ce qu'il t'affiche.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed