<input type="file"> ne fonctionne pas en https

Résolu/Fermé
briocheOchoco Messages postés 7 Date d'inscription vendredi 15 avril 2022 Statut Membre Dernière intervention 28 septembre 2022 - 24 sept. 2022 à 17:42
briocheOchoco Messages postés 7 Date d'inscription vendredi 15 avril 2022 Statut Membre Dernière intervention 28 septembre 2022 - 28 sept. 2022 à 15:21

Bonjour j'essaye de créer un site web sur lequel j'aimerais envoyer des fichiers, quand j'avais mon site en http je pouvait envoyer mes fichiers et ils apparaissaient dans le fichier "upload" de mon serveur (je voyait le fichier de l'utilisateur apparaitre grace au client SFTP) mais depuis que j'ai activé le contrat ssl sur mon serveur (le site est donc maintenant en https) l'upload de fichiers ne fonctionne plus j'ai donc compris que le https bloquait les envois de fichiers par sécurité .

J'aimerais donc savoir si il n'y à pas un moyen de désactiver le blocage de l'upload (j'utilise le certbot de let's encrypt)

Ou

s'il est possible de par exemple changer le fichier (par exemple une image) et le changer en fichier texte puis récupérer le texte en $_POST[] dans du php puis via php re-changer le texte en image et finalement avoir l'image sur le serveur

je bloque car le php ne peut pas accéder a l'image je pense donc a du JS pour changer le fichier en texte puis php pour le re-changer en image (ou du node.js)

EN GROS : je veut upload un fichier vers un serveur a travers un protocole https

Merci d'avance pour toute aide donnée =)

A voir également:

9 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
24 sept. 2022 à 17:59

As-tu un message d'erreur ?
Quels sont les logs (error.log) du serveur ?
Quel est le code HTML utilisé (avec les URLs dans le code) ?


0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
24 sept. 2022 à 18:11

Bonjour,

mais depuis que j'ai activé le contrat ssl sur mon serveur (le site est donc maintenant en https) l'upload de fichiers ne fonctionne plus j'ai donc compris que le https bloquait les envois de fichiers par sécurité .

Heuuu.. non. le https ne bloque rien !

A mon avis, tu as mal configuré le fichier .htacess de ton site qui se charge de forcer la redirection en https.

Et comme le dit Nhenry,  il faudrait commencer par : 

1- nous montrer le code utilisé

2 - Nous montrer le fichier htaccess

3 - Vérifier et nous montrer) le contenu du fichier error.log du serveur apache


0
briocheOchoco Messages postés 7 Date d'inscription vendredi 15 avril 2022 Statut Membre Dernière intervention 28 septembre 2022
25 sept. 2022 à 14:05

Ok parfait si le https ne bloque rien !
 

Dans mes logs j'ai ces erreurs :

"[Sun Sep 25 00:00:02.423371 2022] [mpm_prefork:notice] [pid 1058389] AH00163: Apache/2.4.41 (Ubuntu) Op>
[Sun Sep 25 00:00:02.423396 2022] [core:notice] [pid 1058389] AH00094: Command line: '/usr/sbin/apache2'
<630: client denied by server configuration: /var/www/html/server-status"

je me suis un peut renseigné sur l'erreur : "AH01630: client denied by server configuration"

j'ai vu que la cause de celle ci est probablement la mise a jour d'apache de 2.2 à 2.4 j'ai donc rajouté "<Directory /var/www/site-web-B>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>"

dans le fichier etc/apache2/sites-available/monfichierdeconfiguration.conf

mais rien n'y fait, de plus avant mon code marchait je ne pense pas que le problème vienne de celui-ci je pense que je ne sais pas quel fichier modifier pour changer les autorisations 

De plus je n'ai pas crée de fichier .htaccess

0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
25 sept. 2022 à 20:32

Ton site est-il toujours accessible en http (sans s ) ?

SI oui, l'upload fonctionne t'il en http ?

Et pourquoi ne pas "forcer" la redirection en https ?  ( configuration au niveau apache et/ou via fichier .htaccess )

Tu sembles également nous indiquer que tu as fais une monté de version d'apache ?

Et enfin, si tu penses que le souci ne vient pas du code .. ce n'est donc pas un problème de "programmation" et encore moins de php....

A voir si une personne au niveau du forum Linux ou éventuellement webmaster peut t'aider avec la configuration de ton serveur. (je déplace ta question dans le forum webmaster pour l'instant )


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
25 sept. 2022 à 20:41

Sur un de mes fichiers (qui a subit plusieurs migrations) j'ai :

               Options FollowSymLinks MultiViews
                AllowOverride all
                Order allow,deny
                allow from all
                deny from none
                Require all granted

0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
26 sept. 2022 à 13:37

Bonjour,

Peux-tu joindre le fichier /etc/apache2/sites-available/monfichierdeconfiguration.conf entier ?

Que donne un var_dump($_FILES) ?
https://www.php.net/manual/en/function.var-dump.php

Il serait intéressant de connaître $_FILES['userfile']['error']
https://www.php.net/manual/en/features.file-upload.errors.php

0
briocheOchoco Messages postés 7 Date d'inscription vendredi 15 avril 2022 Statut Membre Dernière intervention 28 septembre 2022
Modifié le 26 sept. 2022 à 20:23

Désolé pour le temps de réponse je n'ai pas beaucoup de temps en ce moment mais voila :

jordane45 :

mon site n'est plus accessible en http (automatiquement redirigé vers https)

Je n'ai pas fait de montée de version d'apache, elle à dus se faire seule quand j'ai fait un apt get upgrade/update j'imagine

Merci d'avoir déplacé mon sujet =)

NHenry :

j'aimerais faire comme toi et changer les accès mais je ne sais pas où mettre ce texte 
(dans le virtualhost sous le port 443 (https) ? dans le /etc/apache2/sites-available/monfichierdeconfiguration.conf ?)

avion-f16 :

mon fichier /etc/apache2/sites-available/monfichierdeconfiguration.conf en entier :

<VirtualHost *:80>
        ServerName monsite.com

        ServerAdmin ***@***
        DocumentRoot /var/www/site-web-B

        LogLevel info
        ErrorLog ${APACHE_LOG_DIR}/monsite_error.log
        CustomLog ${APACHE_LOG_DIR}/monsite_access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =monsite.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:443>
        ServerName monsite.com

        ServerAdmin ***@***
        DocumentRoot /var/www/site-web-B
        SSLEngine on

        SSLcertificateFile /etc/letsencrypt/live/monsite.com/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/monsite.com/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/monsite.com/chain.pem


        LogLevel info
        ErrorLog ${APACHE_LOG_DIR}/monsite_error.log
        CustomLog ${APACHE_LOG_DIR}/monsite_access.log combined

<Directory /var/www/site-web-B>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

RewriteEngine on
RewriteCond %{SERVER_NAME} =monsite.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>


+ var_dump($_FILES)
+ $_FILES['userfile']['error']

je teste ces codes dans le code php de mon upload ?
je le testerais quand j'aurais le temps (dans le code php de mon upload)je te le redirais 

0
briocheOchoco Messages postés 7 Date d'inscription vendredi 15 avril 2022 Statut Membre Dernière intervention 28 septembre 2022
28 sept. 2022 à 15:03

le $_FILES['userfile']['error'] ne me retourne rien mais 

var_dump($_FILES) me retourne :

array(1) { ["fileToUpload"]=> array(5) { ["name"]=> string(13) "imagetest.png" ["type"]=> string(9) "image/png" ["tmp_name"]=> string(14) "/tmp/php0qwywX" ["error"]=> int(0) ["size"]=> int(26496) } }

0
briocheOchoco Messages postés 7 Date d'inscription vendredi 15 avril 2022 Statut Membre Dernière intervention 28 septembre 2022
28 sept. 2022 à 15:21

OK !

au tant pour moi c'était bien une erreur de code !

j'ai vérifié mon code avent avoir (mal)retiré une fonctionnalité 
Au final c'était un vieux point d'exclamation qui était au mauvais endroit , merci à vous tous pour votre aide =) 

0