Script PHP permettant de réaliser "Enregistrer image sous"

Script PHP permettant de réaliser "Enregistrer image sous" - PHP - Programmation

Marsh Posté le 27-04-2005 à 13:47:14    

Bonjour à tous,
 
Je me permets de créer un nouveau topic, étant donné que ma requête actuelle n'est pas la même que celle portée sur ce topic que j'ai créé dernièrement :
Voir le topic !
 
Je n'ai pas non plus trouvé d'autres topic répondant précisément à ma requête qui va suivre, excepté celui là :
Cliquez ici!
 
Mon problème étant :
Je souhaiterai réaliser un script, qui automatiquement réalise la fonction "Enregistrer image sous", et qui enregistre l'image dans le répertoire que je souhaite.
Il me faudrait donc réaliser une fonction prenant en paramètre :
- L'URL de la photo
- Le nouveau nom à donner
- La destination
 
Actuellement, je me retrouve avec une fenêtre possédant une image que je souhaiterai stocker sur mon disque dans un premier temps puis la copier sur mon serveur de développement.
Si je fais clique droit sur l'image, puis enregistrer sous, pas de problème je peux enregistrer mon image sur mon disque.
Si je récupère l'url de la photo, puis que j'essaie de la copier sur mon disque via des fonctions telles que "fopen" "copy"..., ça ne marche pas.
Si je passe cette fois ci par un formulaire, où je donne l'adresse de l'image à uploader, ça m'enregistre bien la photo mais celle ci fait 0ko. L'image est "vide".
 
Bref, voici le code pour le formulaire, afin que vous puissiez vous mettre dedans :
 

Code :
  1. <form method="post" enctype="multipart/form-data" action="uploadfile.php">
  2. <input type="file" name="userfile" size="50">
  3. <br>
  4. <input type="submit" value="Envoi">
  5. </form>


 
Fichier uploadfile.php :
 

Code :
  1. <?php
  2.    $aujourdhui = date('Y-m-d'); // Format AAAA-MM-JJ
  3.    $heure = date('G:i:s'); // Format HH:MN:SS
  4.    // Nom donné à l'image
  5.    $new_nom = $aujourdhui.'_'.$heure;
  6.    $chemin_temp = '/var/www/html/william/camera/images/temp/temp_'.$new_nom.'.jpg';
  7.    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $chemin_temp))
  8.    {
  9.       echo "Le fichier ".$_FILES['userfile']['name']." a été téléchargé avec succès dans ".$chemin_temp;
  10.    }
  11. ?>


 
 
Bref, c'est très étrange.
 
Un script réalisant la même fonction que Enregistrer Image Sous avec validation automatique dans le répertoire que je souhaite, ce serait impeccable... vraiment !
 
Merci à vous.
 
Fiiies ;)
 
EDIT : Dans la fenêtre, l'image que je perçois est t'elle stockée quelque part sur mon disque ? Je suis allé voir dans C:\Documents and Settings\william\Local Settings\Temporary Internet Files. J'ai bien l'image en question à savoir : video.jpg, mais son URL (après avoir regardé dans ses propriétés) est http://192.168.0.99/cgi-bin/video.jpg.
Elle n'est donc pas réellement stockée sur mon disque.
 
Dernière chose, lorsque je rentre l'URL d'une image hébergée sur Internet, ça me copie bien l'image mais celle ci fait 0Ko, encore une fois. Seul les images en local fonctionnent.
 
Thanks !


Message édité par Fiiies1 le 27-04-2005 à 13:52:25
Reply

Marsh Posté le 27-04-2005 à 13:47:14   

Reply

Marsh Posté le 27-04-2005 à 15:29:39    

:sarcastic:  :( Personne ne peut me donner un coup de main ? :(  :sarcastic:  
 
Concrètement, il faut simplement que je récupère cette photo :
 
http://fiiies.free.fr/Camera/imprim_ecran_camera.jpg
 
Pour cela, deux alternatives que je n'arrive pas à résoudre :
 
- Soit savoir où elle se trouve sur mon disque si elle est stockée temporairement (car après, mon script me permettant de la transférer où je veux fonctionne). Cela me faciliterait bien des choses si cette image était stockée en "dur" sur mon HD.
 
- Soit créer un script me permettant de réaliser la même fonction que "Enregistrer image sous", avec comme seule exception que la photo soit stockée directement à un endroit que je précise.
 
Bref, si vous pouviez m'aidez, ça me serait très utile. Je rame depuis le début de l'aprem...
 
Thanks
 
Fiiies. ;)

Reply

Marsh Posté le 27-04-2005 à 15:30:34    

Tu veux que l'image s'enregistre où ? Sur le disque de l'internaute ? :heink:

Reply

Marsh Posté le 27-04-2005 à 15:37:17    

Citation :

Tu veux que l'image s'enregistre où ? Sur le disque de l'internaute ?


 
Oui, en gros, je suis obligé de la stocker temporairement (le temps qu'il confirme ou non l'enregistrement de la photo) sur le HD de l'internaute, pas d'alternatives possibles apparemment.
 
Image HTTP => Image sur HD de l'internaute => Image sur Server de développement.
 
Ce que je me pose comme question depuis un bon moment déja... Le clique droit => enregistrer image sous, il doit bien être possible de le reproduire ?
 
Merci en tout cas de suivre mon problème.
 
Fiiies. ;)

Reply

Marsh Posté le 27-04-2005 à 15:38:37    

Fiiies1 a écrit :

Citation :

Tu veux que l'image s'enregistre où ? Sur le disque de l'internaute ?



Oui, en gros
, je suis obligé de la stocker temporairement (le temps qu'il confirme ou non l'enregistrement de la photo) sur le HD de l'internaute, pas d'alternatives possibles apparemment.
 
Image HTTP => Image sur HD de l'internaute => Image sur Server de développement.
 
Ce que je me pose comme question depuis un bon moment déja... Le clique droit => enregistrer image sous, il doit bien être possible de le reproduire ?
 
Merci en tout cas de suivre mon problème.
 
Fiiies. ;)


impossible alors. pour des raisons évidentes


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 27-04-2005 à 15:39:26    

Et ouais, complètement impossible et super dangereux [:spamafote]. Imagine si c'était possible, tu te retrouves avec des centaines de fichiers téléchargés automatiquement avec virus, spywares et compagnies :D

Reply

Marsh Posté le 27-04-2005 à 15:40:39    

C'est quoi l'interet de stocker l'image sur le disque de l'internaute puis sur celui du serveur et pas directement sur le serveur?

Reply

Marsh Posté le 27-04-2005 à 15:43:20    

si c'est des serveurs différents...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 27-04-2005 à 15:45:33    

bah autant passer d'un serveur à l'autre directement alors, sans passer par le disque de l'internaute, non?

Reply

Marsh Posté le 27-04-2005 à 15:46:32    

Fiiies1 a écrit :


EDIT : Dans la fenêtre, l'image que je perçois est t'elle stockée quelque part sur mon disque ? Je suis allé voir dans C:\Documents and Settings\william\Local Settings\Temporary Internet Files. J'ai bien l'image en question à savoir : video.jpg, mais son URL (après avoir regardé dans ses propriétés) est http://192.168.0.99/cgi-bin/video.jpg.
Elle n'est donc pas réellement stockée sur mon disque.
 
Dernière chose, lorsque je rentre l'URL d'une image hébergée sur Internet, ça me copie bien l'image mais celle ci fait 0Ko, encore une fois. Seul les images en local fonctionnent.
 
Thanks !


Bravo, tu viens de découvrir le dossier des fichier temporaires :sol: Et quand tu fais bouton droit dessus, il file l'url où elle se trouvait. Mais physiquement, elle est bien dans le dossier C:\Documents and Settings\william\Local Settings\Temporary Internet Files

Reply

Marsh Posté le 27-04-2005 à 15:46:32   

Reply

Marsh Posté le 27-04-2005 à 15:46:43    

oui, ça s'appelle du FXP


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 27-04-2005 à 15:53:16    

Citation :

Bravo, tu viens de découvrir le dossier des fichier temporaires


 
 :sarcastic:  
 
Bref oui, désolé, après réflexion, je ne vois pas pourquoi je devrai stocker temporairement l'image sur le dur de l'internaute. Complètement incohérent et dangereux.
A vrai dire, j'en perds un peu les "pédales" depuis ce début d'aprem (voir de journée) à cogiter dans le vent!
 
Donc, concrètement, il me faut récupérer l'image présente dans la fenêtre puis la copier dans mon serveur de développement.
 
Le problème, c'est que si je la récupère via le dossier Temporary Internet Files à savoir C:\Documents and Settings\william\Local Settings\Temporary Internet Files\video.jpg, ça revient exactement au même que de la reprendre à cette url http://192.168.0.99/cgi-bin/video.jpg.
 
Si je double clique sur cette image justement, ça me demande de me logguer, comme si j'utilisais l'appli Web de ma caméra IP.
 
J'ai installé Easy PHP 1.8, afin de voir si les fonctions de GD (createimagefromjpeg, createimagefrompng ...) étaient gérées par le server. Toujours pas.
De même pour d'autres fonctions.
 
Bref, que faire? Je vous le demande... :sarcastic:  :(  
 
Merci ;).
 
Fiiies


Message édité par Fiiies1 le 27-04-2005 à 15:54:47
Reply

Marsh Posté le 27-04-2005 à 15:56:53    

Fiiies1 a écrit :

[quote]Le problème, c'est que si je la récupère via le dossier Temporary Internet Files à savoir C:\Documents and Settings\william\Local Settings\Temporary Internet Files\video.jpg, ça revient exactement au même que de la reprendre à cette url http://192.168.0.99/cgi-bin/video.jpg.


Si tu la copies à partir de la ligne de commande, ça fonctionnera. C'est juste quand tu va dans le dossier avec l'explorateur qu'il va la récupérer sur le serveur. C'est dû au fait que c'est un dossier spécial avec comportement spécial...

Reply

Marsh Posté le 27-04-2005 à 16:13:26    

Citation :

Si tu la copies à partir de la ligne de commande, ça fonctionnera. C'est juste quand tu va dans le dossier avec l'explorateur qu'il va la récupérer sur le serveur. C'est dû au fait que c'est un dossier spécial avec comportement spécial...


 
Pas bête... Loin d'être bête !! http://www.psychoparis7.net/IMG/sourire.png
 
J'ai essayé une commande Linux : "wget http://admin:admin@192.168.0.99/cg [...] .jpg&#034; en me plaçant dans le répertoire adéquat, et magie, l'image a été copiée dans ce répertoire !!
 
Donc, il va falloir que j'insère cette commande linux dans mon script PHP.
 
Merci bien, je vais pouvoir avancer... j'espère !! :) Gracie mile :D  
 
Je vous tiens au jus si je bloque :p  
 
Fiiies.

Reply

Marsh Posté le 27-04-2005 à 16:27:39    

bha non...
juste mettre le login pass dans l'url avec copy()


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 27-04-2005 à 16:36:49    

Citation :

bha non...  
juste mettre le login pass dans l'url avec copy()


 
Exact ! :) Je viens d'essayer rapidement ces 4lignes :
 

Code :
  1. if (!copy ("http://admin:admin@192.168.0.99/cgi-bin/video.jpg", '/var/www/html/william/camera/images/temp/temp_'.$new_nom.'.jpg'))
  2.    echo "FOIRE";
  3. else
  4.    echo "OK";


 
Résultat, j'ai eu affiché "OK" dans ma fenêtre. Je suis allé voir dans mon répertoire en question et l'image a bien été ajoutée : temp_2005-04-27_16:3..> 27-Apr-2005 16:33   18K
 
Impeccable, je vous remercie :).
 
Pour la suite, je pense que je vais pouvoir me débrouiller pendant un ptit moment. ;)  
 
Merci encore, je ne pensais pas qu'un forum pouvait m'aider à ce point.

Reply

Marsh Posté le 27-04-2005 à 16:42:24    

hé ben tu voie.....quand tu veux

Reply

Sujets relatifs:

Leave a Replay

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