Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1762 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Affecter une valeur à un input file

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Affecter une valeur à un input file

n°2134217
Maldoror
Carpe diem, tu vas mourir
Posté le 02-04-2012 à 11:09:23  profilanswer
 

Mesdames et messieurs, le bonjour [:ignition]  
 
Je souhaiterais soumettre à votre sagacité la problématique suivante :
 
- soit une zone input de type file, d'un formulaire dont je n'ai pas les sources.
 
Cette zone input permet d'aller parcourir les dossiers du disque dur pour sélectionner un fichier. Le chemin du fichier s'affiche alors dans la zone input, et un bouton "charger" permet d'envoyer le fichier sur un serveur.
 
Dans le cadre d'une automatisation de ce fonctionnement (pour un professionnel), je suis amené à devoir "simuler" l'action humaine, c'est à dire, à l'aide d'un outil de script, affecter par code la valeur de la zone input (le chemin complet, donc), puis aller cliquer sur le bouton "charger".
 
Le problème vient de ce que je ne parviens pas à modifier la valeur de la zone input (sur laquelle je n'ai pas la main, je le répète, je ne peux donc travailler que sur les attributs de la zone). Comme un petit malin, je me suis dit que j'allais modifier la propriété "value" de l'input, mais ça n'a pas l'air de fonctionner beaucoup.
 
Pour corser le tout (sinon c'est pas rigolo), je n'ai pas la possibilité de développer un bout de code pour faire ça, je suis dans le cadre défini et normé d'un outil de script qui embarque sa propre liste finie d'instructions :o
 
Si quelqu'un a une idée, je suis preneur :jap:
 
Au plaisir [:cetrio:1]


---------------
Nous ne sommes rien, nous n'allons vers rien. Profitons au moins du voyage !
mood
Publicité
Posté le 02-04-2012 à 11:09:23  profilanswer
 

n°2134224
rufo
Pas me confondre avec Lycos!
Posté le 02-04-2012 à 12:10:20  profilanswer
 

C'est possible de faire ça, pour des raisons évidentes de sécurité :o Si tu pouvais faire ça, ça voudrait dire que n'importe qui pourrait récupérer n'importe quel fichier sur ton poste.  :pfff:  
 
Par ailleurs, depuis qq années, la politique de sécurité des navigateurs s'est durcie par rapport au comportement du input type "file" (ex : FF, si tu modifie avec du JS le contenu du value, la soumission du formulaire ne se fait pas).
 
Pour mon appli de help-desk Astres (cf ma signature), j'avais besoin de récupérer dans certains cas, le chemin d'accès du fichier uploadé par l'utilisateur, histoire de faire un lien local en file:// et non uploader le fichier sur le serveur. Ben rien que ça, j'ai galéré et pour permettre l'ouverture de liens file:// et pour mettre dans un champ caché le contenu du value du input type file. Il faut modifier le about:config de Firefox. Dans mon cas, c'est pour un intranet, donc pas trop de pb.
 
Conclusion : trouve autre chose. C'est quoi ton besoin initial (parce que là, ce que t'as exprimé, c'est une solution technique)? En gros, quel est le but final à atteindre du ou des scripts? Parce que dans 9 cas sur 10, si la solution technique retenue est impossible, ça vient de pb d'analyse ou de conception. ;)
 
Edit : même avec du Java ou du Flash, t'auras des pbs de droits d'accès similaires...

Message cité 1 fois
Message édité par rufo le 02-04-2012 à 12:11:05

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2134225
Maldoror
Carpe diem, tu vas mourir
Posté le 02-04-2012 à 12:12:43  profilanswer
 

L'autre solution c'est d'écrire un webservice complet :/
 
Je t'explique le besoin en MP.


---------------
Nous ne sommes rien, nous n'allons vers rien. Profitons au moins du voyage !
n°2198692
weloveyou
Posté le 25-07-2013 à 07:27:38  profilanswer
 

rufo a écrit :


Pour mon appli de help-desk Astres (cf ma signature), j'avais besoin de récupérer dans certains cas, le chemin d'accès du fichier uploadé par l'utilisateur, histoire de faire un lien local en file:// et non uploader le fichier sur le serveur. Ben rien que ça, j'ai galéré et pour permettre l'ouverture de liens file:// et pour mettre dans un champ caché le contenu du value du input type file. Il faut modifier le about:config de Firefox. Dans mon cas, c'est pour un intranet, donc pas trop de pb.


 
 
Je déterre ;-)
 
C'est quoi le paramètre de about:config de Firefox qu'il faut modifier ?

n°2198699
rufo
Pas me confondre avec Lycos!
Posté le 25-07-2013 à 09:26:58  profilanswer
 

Depuis la version 3.0 de Firefox, pour permettre l'ouverture d'un lien hypertexte en file://, il faut mettre les lignes suivantes dans le fichier user.js situé dans le sous-répertoire finissant par ".default" du répertoire C:\Documents and Settings\"votrelogin"\Application Data\Mozilla\Firefox\Profiles\"

Code :
  1. user_pref("capability.policy.policynames", "politiquelocale" );
  2. user_pref("capability.policy.politiquelocale.sites", "http://urldusite.com" );
  3. user_pref("capability.policy.politiquelocale.checkloaduri.enabled", "allAccess" );


 
Pour permettre la lecture d'un fichier sur le HDD ou modifier la valeur d'un input type texte par du javascript, dans le fichier all.js du répertoire de Firefox (dans c:\program files\), il faut ajouter la ligne suivante :

Code :
  1. pref("signed.applets.codebase_principal_support", true);


 
Ca peut se faire aussi manuellement via le about:config et créer la valeur booléenne "signed.applets.codebase_principal_support". La prise en compte de la modification de paramétrage est immédiat, il n'y a pas besoin de fermer Firefox puis de le réouvrir. Quand la valeur du contenu du input type file va être chanége par un javascript, Firefox va probablement afficher un message d'alerte demandant d'autoriser l'action. Cocher la case "se souvenir..." et cliquer sur le bouton "Autoriser".
 
A lire :
http://stackoverflow.com/questions [...] -privilege
https://groups.google.com/forum/#!t [...] IweZ0ZbDlQ
 
A noter qu'il n'est pas possible d'uploader sur un serveur un fichier non sélectionné manuellement par l'utilisateur. Encore heureux pour la sécurité !!!


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2198706
weloveyou
Posté le 25-07-2013 à 10:47:36  profilanswer
 

wow ! Merci !
 
Je teste çà et je reviens vers vous !
 

n°2198709
rufo
Pas me confondre avec Lycos!
Posté le 25-07-2013 à 11:08:12  profilanswer
 

Par rapport à signed.applets.codebase_principal_support, vérifier la portée (uniquement pour ton site ou pour tous les sites). Ca pourrait être vue comme une faille de sécurité dans certains cas. Moi, j'étais en contexte intranet, non ouvert depuis l'extérieur. Ca posait donc pas de pb...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2198969
weloveyou
Posté le 29-07-2013 à 13:45:48  profilanswer
 

Je reviens vers vous après avoir épluché toutes les solutions et toutes mes idées ...
 
je n'arrive pas à transmettre la photo automatiquement, même en modifiant about:config de Firefox...
 
Je suis vraiment à cours d'idées... J'ai besoin d'un coup de pouce...
 
(Je rappelle que je travaille uniquement en local, donc, je peut modifier tous les paramètres de sécurité de mon navigateur sans aucun problème...)
 
 
Voici mon petit code de test :
 

Code :
  1. <!DOCTYPE html>
  2. <html lang="fr">
  3. <head>
  4. </head>
  5. <body>
  6. <pre>
  7. <?php  print_r($_FILES); ?>
  8. </pre>
  9. <form action="test-envoi-de-photo.php" method="POST" enctype="multipart/form-data">
  10. <input type="file" name="test" value="photo.jpg">
  11. <input type="submit">
  12. </form>
  13. </body>
  14. </html>


 
D'avance, merci


Message édité par weloveyou le 29-07-2013 à 13:47:20
n°2198970
rufo
Pas me confondre avec Lycos!
Posté le 29-07-2013 à 14:10:47  profilanswer
 

J'avais bien précisé : "A noter qu'il n'est pas possible d'uploader sur un serveur un fichier non sélectionné manuellement par l'utilisateur. Encore heureux pour la sécurité !!!"
 
Si l'utilisateur n'a pas sélectionné le fichier en question, le fichier ne sera pas envoyé sur le serveur, ce pour des raisons de sécurité.
 
Ce que j'ai donné, c'est juste pour pouvoir récupérer le chemin d'accès d'un input file et le traiter comme bon nous semble et pouvoir ouvrir un lien hypertexte de type file://


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2199022
rufo
Pas me confondre avec Lycos!
Posté le 30-07-2013 à 09:36:49  profilanswer
 

<input type="file" name="test" value="photo.jpg">
 
Si tu espères qu'en mettant un nom de fichier (en plus, logiquement, faudrait mettre un chemin et non un nom de fichier) dans ton input type file et qu'en cliquant sur "valider", ça va envoyer le fichier, tu te trompes, ça marchera jamais et comme dit déjà 2 fois, encore heureux, pour des raisons de sécurité !


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
mood
Publicité
Posté le 30-07-2013 à 09:36:49  profilanswer
 

n°2199104
weloveyou
Posté le 30-07-2013 à 21:20:52  profilanswer
 

OK je comprend bien ;-)  
 
Le blocage se situe à quel niveau ?
 
Il y a peut-être moyen de débloquer la protection dans le php.ini du serveur apache local ?
 
Je cherche, je cherche... Je pense que rien n'est impossible ;-)

n°2199117
rufo
Pas me confondre avec Lycos!
Posté le 31-07-2013 à 09:32:04  profilanswer
 

weloveyou, tu m'as l'air très familiers des technos web pour penser que tu pourras résoudre ton pb en modifiant le php.ini, donc côté serveur alors qu'il s'agit d'un pb côté client :/
Comme dit maintes fois dans ce topic, s'il était possible d'uploader sur un serveur un fichier pris sur le HDD d'un poste utilisateur de manière automatique, donc sans action de sa part ce qui impliquerait que l'utilisateur n'aurait donc pas connaissance de ce transfert de fichier, ça poserait 2 problèmes majeurs :
1) un pb de sécurité : si n'importe quel site peut récupérer sur ton HDD n'importe quel fichier, qu'est-ce qui l'empêche de récupérer le fichier SAM (contient les mdp chiffrés des comptes Windows si je me souviens bien) par ex ?
2) un pb légal : prendre quelque chose même numérique (ici, un fichier) sans l'accord du propriétaire, ça s'appelle du vol :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Affecter une valeur à un input file

 

Sujets relatifs
file_get_contents vers URL, ne marche pas... ? help[C#] REST, méthode POST, valeur du stream, doit il être encodé ?
ecrire un programme qui lit une suite de valeur à partir d'un entier ndelphi, file Directory problem!!
Quelle valeur récuperer dans mon batch ??[RESOLU] Plusieurs "like" de suite + probleme jointure
OutputStream -> FileAfficher une UserForm en fonction de la valeur de "Listindex"
créer une boite de dialogue pour rentrer une valeur dans excelvariables input
Plus de sujets relatifs à : Affecter une valeur à un input file


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR