Bonjour,
Pour une application je dois récupérer un fichier sur un serveur dont je n'ai pas acces et protéger par un compte.
J'ai essayer avec des envois POST en utilisant une classe postrequest trouve sur internet (http://www.pateysoft.fr/Envoyer-une-...T-par-PHP.html)
pour passer le compte et récuperer le cookie.
Puis je renvoi une entete POST pour recuperer le fichier avec le cookie seulement je n'arrive pas à le recuperer. Et je ne sais pas si c'est du a la taille du fichier (env 5MO) ou une erreur que je ne connais pas. Le browser (firefox) cherche et plante donc je n'ai aps d'affichage. J'aimerais utiliser une fonction pour telecharger le fichier, j'ai essayer copy() mais je peux pas ajouter le cookie avec. Donc si vous avez des pistes pour que je recherche.
Je suis arriver à telecharger le fichier en faisant cette méthode sur un autre site avec un fichier de (env 800 ko) mais pas l'autre.
Je vous laisse le code
J'ai ensuite une deuxieme erreur, je n'arrive pas a copier un fichier xml a partir d'un formulaire, le tableau $_FILES est toujours vide et le $_POST aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <?php require_once( 'postrequest.class.php' ) ; $pr = new PostRequest( 'http://site.com/auth.php' ); $pr->setData( 'USER', 'user' ); $pr->setData( 'PASS', 'pass' ); $pr->setHeader( 'Content-Type', 'application/x-www-form-urlencoded' ); $page = $pr->send(); $request = new PostRequest( 'http://site.com/download.php' ); $request->setCookies( $cookies ); $request->setHeader( 'Content-Type', 'application/x-www-form-urlencoded' ); $page = $request->send(); $ouvre=fopen("fichier.xls","wb"); // ouverture en lecture ( a+) //~ } if(isset($page)){ fwrite($ouvre,$page); // écriture fichier fclose($ouvre); } echo $page; ?>
formulaire.html
Dans ce bout de code il y a pas mal de commentaire parce que j'ai teste plusieurs facon pour uploader un fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 <?php include_once("./FicValide.php"); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script language="JavaScript" src="./utils.js"></script> <title>Analyseur PHP</title> </head> <body> <form method="POST" action="FicValide.php" enctype="multipart/form-data"> Fichier Entrée (*.xml) : <input type="hidden" name="formFicXML" value="ficXML" /> <input id="inputFileXML" type="file" name="inputFileXML" /> * <br /> Colonne separer par des - Ex : A-B-D? <input type="text" name="colonne" /> <br /> Fichier de sortie : <input id="outputFileXML" type="text" name="outputFileXML" /> <br /> <input type="submit" name ="valider" value="Valider" onclick="return verifForm('inputFileXML', 'xml', 'true', 'outputFileXML', 'xml', 'false')" /> <input type="reset"> </form> </body> </html>
ficValide.php
Ne vous souciez pas des extensions j'ai aussi tester pour du XLS mais sans succes non plus. Donc je ne sais pas si c'et un probleme de apache ou php.ini ou du code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 <?php echo "File : ";print_r($_FILES); echo "<br/>"; echo "Post : ";print_r($_POST); if(isset($_POST['formFicXML']) AND $_POST['formFicXML'] == "ficXML") { $uploadDir = '../../FichierXLS/'; echo $_FILES["inputFileXML"]["name"]; $input = $uploadDir . basename($_FILES["inputFileXML"]["name"]); echo '<p>'; if(isset($_FILES["inputFileXML"])) { if(move_uploaded_file($_FILES['inputFileXML']['name'], $input)){ echo "Le fichier est valide et téléchargé "; } else { echo "Le fichier n'est pas valide "; echo "Erreur : " .$_FILES['inputFileXML']['error']; } } echo '</p>'; // if (isset($_FILES['inputFileXML']) AND $_FILES['inputFileXML']['error'] == 0) // { // move_uploaded_file($_FILES['inputFileXML']['tmp_name'], 'XML/'. $_FILES['inputFileXML']['name'].'.xml'); // } print_r($_FILES); print_r($_POST); // if(is_uploaded_file($inputFileXML)) // { // echo "File uploaded"; // echo " temporary filename : ". $inputFileXML. "<br />"; // echo " user filename : ". $inputFileXML_name. "<br />"; // echo " size : ". $inputFileXML_size. "<br />"; // } // else // { // echo "encore echoue"; // } } ?>
Merci si vous avez une reponse ou une piste.
Cordialement,
Toshy
Partager