convertir chemin et nom de fichier en fichier

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
flashy38
Arias
Messages : 3
Inscription : 07 juin 2007, 10:56

convertir chemin et nom de fichier en fichier

Message par flashy38 »

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 :
  1. 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 :

    Code : Tout sélectionner

     <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> 
  2. 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.
  3. 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
  4. 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 :
Image

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....


Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727)
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Mouarf, bien compliqué tout ça :shock:

Pourquoi ne pas faire tout sur un seul et même script/page ? Tu peux très bien, dans upload.cgi, procéder au découpage, transférer par ftp et détruire le fichier temporaire...

De plus, je ne comprend pas bien cette limite... c'est free qui limite la taille des fichiers transférés ? Ou une connexion boiteuse ?

Finalement, est-ce qu'il ne serait pas plus simple de passer par un proxy ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
flashy38
Arias
Messages : 3
Inscription : 07 juin 2007, 10:56

Message par flashy38 »

calimo a écrit :Mouarf, bien compliqué tout ça :shock:

Pourquoi ne pas faire tout sur un seul et même script/page ? Tu peux très bien, dans upload.cgi, procéder au découpage, transférer par ftp et détruire le fichier temporaire...
Je t'avouerai, comme je le disais en fin de message, que je connais rien au perl...
J'ai récupéré sur le net ce script qui marche parfaitement, donc j'essaye de "broder autour sans le toucher". Bon je sais bien que c'est un peu bricolage et que c'est moche d'utiliser un script sans comprendre comment il fonctionne, mais bon... :oops:
calimo a écrit : De plus, je ne comprend pas bien cette limite... c'est free qui limite la taille des fichiers transférés ? Ou une connexion boiteuse ?
Oui, il s'agit plus d'un pb de connection et aussi de délai d'exécution... Même si la connection n'est pas si boiteuse !! :wink:
calimo a écrit : Finalement, est-ce qu'il ne serait pas plus simple de passer par un proxy ?
J'ai déjà pensé à cette solution... Le pb, c'est que je me connecte du boulot, et leur proxy bloque l'accès à ces pages ! :cry:

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727)
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

flashy38 a écrit :Je t'avouerai, comme je le disais en fin de message, que je connais rien au perl...
L'occasion rêvée pour apprendre ?
Au fond, c'est pas très très différent de php...

La référence : http://perldoc.perl.org/
Un bon tutorial : http://sylvain.lhullier.org/publications/perl.html


PS : pour répondre à la question initiale, effectivement, la valeur de l'attribut value d'un input de type="file" est ignorée pour des raisons de sécurité (il serait trop facile de faire télécharger automatiquement un fichier sensible du système...). :wink:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
Invité

Message par Invité »

Merci j'vais regarder ça...
Bon comme j'suis pas informaticien de formation, ca va être un peu chaud mais bon...

Juste un petit renseignement : est-ce qu'en modifiant mon script cgi, je peux aller chercher un fichier sur mon disque dur local si je lui fourni le chemin complet (j'ai ça dans une chaine de caractère...) ?
Parcequ'en fait actuellement le script cgi recoit la super-variable $_FILE...

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727)
flashy38
Arias
Messages : 3
Inscription : 07 juin 2007, 10:56

Message par flashy38 »

Oups désolé le message précédent est bien de moi mais j'avais oublié de me connecter :oops:

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727)
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Le script cgi n'a pas accès à ta machine ! Uniquement aux données que tu as envoyées :wink:

Ce que tu peux bricoler c'est un script en local qui automatiserait la soumission, lui aura accès aux fichiers :wink:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités