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

Résolu
briocheOchoco Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
briocheOchoco Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   - 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 "" 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' 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' (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 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 15215 Date d'inscription   Statut Modérateur Dernière intervention   363
 

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 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 744
 

Bonjour,

mais depuis que j'ai activé le contrat ssl sur mon serveur (le site est donc maintenant en https) l' 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 .ht 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   Statut Membre Dernière intervention  
 

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 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 744
 

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

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

Et pourquoi ne pas "forcer" la redirection en https " et encore moins de php....

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


0

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

Posez votre question
NHenry Messages postés 15215 Date d'inscription   Statut Modérateur Dernière intervention   363
 

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 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 506
 

Bonjour,

Peux-tu dre 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['file']['error']
https://www.php.net/manual/en/features.file-.errors.php

0
briocheOchoco Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 

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

        Server ***@***
        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

        Server ***@***
        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['file']['error']

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

0
briocheOchoco Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 

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

var_dump($_FILES) me retourne :

array(1) { ["fileTo"]=> 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   Statut Membre Dernière intervention  
 

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