Bonjour,
Etant actuellement à l'étranger et ne pouvant utiliser le protocole FTP depuis l'endroit où je me connecte, je ne pouvais pas mettre à jour un de mes sites chez free.fr.
Pour palier le problème, j'ai trouvé et installé sur un site tiers un script cgi écrit en perl qui me permet faire de l'upload de fichier:
L'avantage de ce script est de ne pas être limité au 2Mo du php. En effet, je cherche à uploader des vidéos perso, donc de taille importante. La limitation de taille par ce sript est de 50Mo.
En réalité, l'upload de mes fichiers se fait en trois étapes :
* Etape 1 : sur le site tiers, ouverture de la page upload.html avec formulaire me permettant de choisir le fichier à uploader. Le code de cette page est le suivant :
* Etape 2 : le script upload.cgi permet d'uploader le fichier dans un répertoire temporaire du site tiers puis redirige vers une deuxième page toujours sur le site tiers (transfert.html) avec un nouveau formulaire.
* Etape 3 : Dans ce formulaire, j'indique le nom du serveur (ftpperso.free.fr), l'identifiant et le mot de passe. Le script php lancé à la validation du formulaire est transfert.php
* Etape 4 : Le script transfert.php établit alors une connexion FTP, transfert le fichier du répertoire temporaire du site tiers vers mon compte free et enfin détruit le fichier présent dans le répertoire temporaire du site tiers.
Tout cela marche très bien, mais je souhaiterai automatiser l'upload de fichers.
Je m'explique : Pour les fichiers de + de 50Mo (cas le plus fréquent), je les compresse et découpe avec winrar. Par exemple un fichier "video.avi" de 120Mo me donnera 3 fichiers winrar nommés par exemple video.part01.rar, video.part02.rar et video.part03.rar (50Mo pour les deux premiers et environ 20Mo pour le dernier).
Pour automatiser l'upload des fichiers, je pensais procéder selon le schéma suivant :
http://www.mezimages.com/up/06/min-187583-Org.jpg
Pour que ca soit automatique, je voulais, dans le formulaire de la page upload.php, remplir le champ de sélection du fichier de façon automatique, via la propriété "value" (input type="file" value =$nom_fichier …) et faire une validation automatique pour poursuivre.
En effet, le script calcul.php me permet de récupérer, dans la variable $nom_fichier et sous forme de chaine de caractères, le chemin et le nom du fichier (par ex c:/mon_dossier/video.part02.rar)
Le souci, c'est que la propriété value de input type="file" n'existe pas (ou du moins n'est pas prise en compte). Donc ça marche pas.
Ma deuxième idée, c'était de mettre un input type="text" au lieu du input type="file" et d'y injecter le chemin et le nom du fichier par la propriété value. Là, c'est autorisé mais le script cgi ne fonctionne pas puisqu'il ne recoit pas un fichier mais du texte.
Bref, je galère !!!!
Ce qu'il faudrait, c'est que j'arrive à transformer le chemin et le nom du ficher (que j'ai dans une variable php sous forme de chaine de caractère) en "fichier" (du moins en ce qui est transmis par le formulaire - Tiens c'est quoi au juste ??? $_FILE, non ? )
Si vous avez des idées pour m'aider, je suis preneur, sachant que je connais rien à perl et donc je ne sais pas modifier le script cgi.
Merci d'avance....
Modifié par flashy38 (07 Jun 2007 - 11:18)
Etant actuellement à l'étranger et ne pouvant utiliser le protocole FTP depuis l'endroit où je me connecte, je ne pouvais pas mettre à jour un de mes sites chez free.fr.
Pour palier le problème, j'ai trouvé et installé sur un site tiers un script cgi écrit en perl qui me permet faire de l'upload de fichier:
L'avantage de ce script est de ne pas être limité au 2Mo du php. En effet, je cherche à uploader des vidéos perso, donc de taille importante. La limitation de taille par ce sript est de 50Mo.
En réalité, l'upload de mes fichiers se fait en trois étapes :
* Etape 1 : sur le site tiers, ouverture de la page upload.html avec formulaire me permettant de choisir le fichier à uploader. Le code de cette page est le suivant :
<form action="/cgi-bin/upload.cgi" method="POST" ENCTYPE="multipart/form-data">
<p>Fichier à upper : <input type="FILE" name="FILE1"></p>
<input type="SUBMIT" value="Envoyer !" style="cursor:hand;">
</form>
* Etape 2 : le script upload.cgi permet d'uploader le fichier dans un répertoire temporaire du site tiers puis redirige vers une deuxième page toujours sur le site tiers (transfert.html) avec un nouveau formulaire.
* Etape 3 : Dans ce formulaire, j'indique le nom du serveur (ftpperso.free.fr), l'identifiant et le mot de passe. Le script php lancé à la validation du formulaire est transfert.php
* Etape 4 : Le script transfert.php établit alors une connexion FTP, transfert le fichier du répertoire temporaire du site tiers vers mon compte free et enfin détruit le fichier présent dans le répertoire temporaire du site tiers.
Tout cela marche très bien, mais je souhaiterai automatiser l'upload de fichers.
Je m'explique : Pour les fichiers de + de 50Mo (cas le plus fréquent), je les compresse et découpe avec winrar. Par exemple un fichier "video.avi" de 120Mo me donnera 3 fichiers winrar nommés par exemple video.part01.rar, video.part02.rar et video.part03.rar (50Mo pour les deux premiers et environ 20Mo pour le dernier).
Pour automatiser l'upload des fichiers, je pensais procéder selon le schéma suivant :
http://www.mezimages.com/up/06/min-187583-Org.jpg
Pour que ca soit automatique, je voulais, dans le formulaire de la page upload.php, remplir le champ de sélection du fichier de façon automatique, via la propriété "value" (input type="file" value =$nom_fichier …) et faire une validation automatique pour poursuivre.
En effet, le script calcul.php me permet de récupérer, dans la variable $nom_fichier et sous forme de chaine de caractères, le chemin et le nom du fichier (par ex c:/mon_dossier/video.part02.rar)
Le souci, c'est que la propriété value de input type="file" n'existe pas (ou du moins n'est pas prise en compte). Donc ça marche pas.
Ma deuxième idée, c'était de mettre un input type="text" au lieu du input type="file" et d'y injecter le chemin et le nom du fichier par la propriété value. Là, c'est autorisé mais le script cgi ne fonctionne pas puisqu'il ne recoit pas un fichier mais du texte.
Bref, je galère !!!!
Ce qu'il faudrait, c'est que j'arrive à transformer le chemin et le nom du ficher (que j'ai dans une variable php sous forme de chaine de caractère) en "fichier" (du moins en ce qui est transmis par le formulaire - Tiens c'est quoi au juste ??? $_FILE, non ? )
Si vous avez des idées pour m'aider, je suis preneur, sachant que je connais rien à perl et donc je ne sais pas modifier le script cgi.
Merci d'avance....
Modifié par flashy38 (07 Jun 2007 - 11:18)