script lié au livre ToutJavascript

Pour tout ce qui concerne la programmation côté serveur, PHP, SQL, Moteurs de templates, Symfony, Node.js, ...
Répondre
NY152
Messages : 4
Enregistré le : 01 févr. 2020, 14:44

script lié au livre ToutJavascript

Message par NY152 » 01 févr. 2020, 15:03

Bonjour,

Je suis entrain de mettre en place un système d'upload sur un serveur.

Je le voulais en Ajax et je me suis inspiré de la page 208 du livre ToutJavascript pour cela.

Si pour le côté front (JS, Ajax) on est renseigné, pour le côté back rien ne nous est expliqué, un survol du script PHP utilisé à la ligne
ajax.open("POST", "/api/uploadFileAjax.php", true);
Si la logique m'oriente vers la fonction move_uploaded_file() de PHP, cela ne fonctionne pas.

Si il n'y a aucune erreur côté front, il n'y en a acune qui survient côté back mais mon fichier n'est pas uploadé pour autant ...

La question serait donc :

Où touver ce script PHP ?

Par avance, merci

Avatar du membre
webmaster
Administrateur du site
Messages : 256
Enregistré le : 28 févr. 2017, 15:19

Re: script lié au livre ToutJavascript

Message par webmaster » 02 févr. 2020, 11:11

Bonjour

J'utilise le tableau $_FILES pour manipuler les fichiers envoyés au serveur
https://www.php.net/manual/fr/reserved. ... .files.php

Il y a un exemple ici
https://www.php.net/manual/fr/features. ... method.php

Attention, le chargement de fichier sur le serveur est très dangereux
Il faut s'assurer que le fichier envoyé est bien du type attendu (genre une image) et inoffensif (pas un fichier exécutable sur le serveur)
Je recommande de rechercher une bibliothèque de controle validée par de nombreux utilisateurs
TJS : 20 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

NY152
Messages : 4
Enregistré le : 01 févr. 2020, 14:44

Re: script lié au livre ToutJavascript

Message par NY152 » 04 févr. 2020, 09:22

Merci pour ton retour, $_FILES, je connais, étant développeur backend

Le soucis est que je n'ai aucune erreur nulle part (rien dans la console JS, aucune erreur reportée par PHP. Mon fichier n'est pourtant pas uplodé là ou il doit être. Sans Ajax, ça fonctionne pourtant.

Je suis du coup entrain de ré-écrire ma classe d'upload PHP, le soucis pourrait peut être venir du routeur mais j'en suis pas encore sûr.

Pour le chargement de fichiers, pas de soucis, j'ai des vérifications à plusieurs niveaux, renommage de fichiers, retrait de l'extension et stockée en BDD, ainsi quelque soit l'extension (même si j'effectue un filtrage basique des extensions autorisées (loin d'être suffisant selon moi)), elle est retirée, le nom renommé, il est impossible à la personne qui a uploadé d'en déduire, son emplacement,son nom et quand bien même elle y arriverait, le fichier ne serait même pas exécutable car sans extension.

Répondre