Dépot de fichier sur le site pour l'envoyer au webmaster 
Автор: FREDERIC BOULNOIS
Просмотрено 428,
Подписчики 1,
Размещенный 0
Je souhaite que mes visiteurs de site puisse déposer des fichiers (ex : photos / pdf) afin de les récupérer dans un dossier. Est-ce que c'est possible ? Comment ?
J'ai essayé via le formulaire avec l'option fichier annexé, mais au dela d'une certaines taille cela ne fonctionne plus.
Merci de vos lumières !
Размещено

Salut Frédéric,
Tu utilises une messagerie gratuite (...Gmail, Outlook...) ou directement depuis la messagerie de ton hébergeur ?
Certaines limitations sont imposées par les fournisseurs pour des raisons de sécurité (surcharge des serveurs...).
Je Signale toutefois ta question au Support Incomedia pour avoir l'avis d'un technicien.
Bonne continuation,
J.P.
Hello Frederic,
what file size have you started encountering issues with?
Usually, as JiPeR mentioned, there can be restrictions on the maximum size imposed by the provider, so it may not be possible to do this with very large files.
Online translation:
Bonjour Frédéric,
quelle taille de fichier commence à poser problème ?
Comme l’a mentionné JiPeR, il peut y avoir des restrictions sur la taille maximale imposées par le fournisseur, il se peut donc que cela ne soit pas possible avec des fichiers très volumineux.
Hello Frederic,
Possible mais il faut faire un peu de code coté client et côté serveur.
Côté client pour choisir le fichier locallement
Côté serveur avec une page en PHP pour récupérer le nom du fichier qui sera envoyé (par une methode POST)
https://yard.onl/sitelycee/cours/js/_Js.html?Lesystmedupload.html
Axel
Il faut copier ce code dans un objet HTML
<form action="afs-demo/fileupload/upload.php" method="post" enctype="multipart/form-data">
<label for="file">Choisir un fichier :</label>
<input type="file" name="mon_fichier" id="file" />
<input type="submit" value="Envoyer le fichier" />
</form>
Ici en gras on configure le chemin ou sera stocké le fichier upload.php
On crée le fichier upload.php en local
<?php
$repertoire = "afs-uploads/"; // Dossier cible sur le serveur
// Créer le dossier s’il n’existe pas
if (!is_dir($repertoire)) {
mkdir($repertoire, 0755, true);
}
$fichier_temporaire = $_FILES['mon_fichier']['tmp_name'];
$nom_fichier = basename($_FILES['mon_fichier']['name']);
$chemin_final = $repertoire . $nom_fichier;
// Déplacer le fichier
if (move_uploaded_file($fichier_temporaire, $chemin_final)) {
echo "Fichier envoyé avec succès dans $chemin_final";
} else {
echo "Erreur lors de l'envoi du fichier.";
}
?>
Ensuite dans le propriétés avancées de l'objet HTML on va configurer l'emplacement ou télécharger le fichier upload.php durant l'export.
Voila...
prendre un petit fichier pour voir.....Un message doit s'afficher indiquant que le transfert ok
Le fichier téléchargé se trouvera donc dans le répartoire suivant dans mon cas
afs-demo/fileupload/afs-uploads
Le répertoire afs-upload sera crée automatiquement si il n'existe pas.
Et cela affiche.
Hello Frederic,
Ici sur mon site de demo j'ai quelque chose de simple à mettre en place.
https://wsx5demo.afsoftware.fr/listing.html
Personnalisable, langue aussi.
Ci joint le manuel
Axel
Автор
C'est parfait ! Cela correspond à ce que je cherche. Merci infiniment.
Автор
juste pour parfaire la chose, serait-il possible qu'après upload d'un fichier, je ne me retrouve pas avec cette page de confirmation très moche ? (voir PJ).
Je préfèrerai un simple popup afin que l'on puisse recommencer un autre upload sans rechargement de la page.
Merci
Essaie de remplacer la ligne
echo "Fichier envoyé avec succès dans $chemin_final";
par
echo "<script type='text/javascript'>alert('Fichier envoyé avec succès dans .$chemin_final');</script>";
Автор
J'ai bien le popup. Merci. Cependant, la page d'upload ne se refraichit pas, ce passe sur une page blanche (celle du lien vers le fichier php) voir pjs
Ceci dit rafraichir la page ne sert pas à grand chose car c'est la page upload.php qui est la pour télécharger le fichier.
Il faut donc revenir à la page précédente.
A mettre après le code de la fenêtre
header("location: https//www.monsite.com/chemin1/mapage.html");
Salut à tous,
Le propriétaire d'un site web étant responsable des données stockées sur son site, il serait préférable de recevoir les fichiers directement par le formulaire en ajoutant sur ce formulaire le lien vers swisstransfer par exemple, pour recevoir plusieurs fichiers ou un dossier important.
Dans le premier champ description :
Pour des fichiers ou dossiers importants :
Lien pour tranfert de fichiers par swisstransfer.<br>
<p>Mon mail : <span style="color:#62D52B;">***</span></p>
Dans le deuxième champ description :
<body>
<a href="https://www.swisstransfer.com/fr-fr" target="_blank"class="imCssLink"><p style="color: orange; font-size: 16px;">Cliquez ici : Tranfert de fichiers </p>
</a>
</body>
Fernand
re,
Oups mes fautes transfert.
Afin de savoir d'où est envoyé le ou les fichiers (fichier joint ou et envoyé par swisstransfer) possibilité d'insérer 2 cases à cocher choix multiple.
Fernand
@Fernand
avec ma soluion, il faut evidemment faire en sorte que la page soit accessible avec des identifiants pour contrôler qui fait les uploads.
Axel
Автор
@Axel :
Cela fonctionne, mais cette fois-ci on a plus le temps de lire le pop-up. Ai-je mal placé la nouvelle ligne de code ?
J’en profite pour poser une dernière question. Est-il possible que ce code renomme automatiquement le fichier si un fichier de même nom existe déjà dans le dossier ? (genre on y ajoute un chiffre au bout ?)
Merci bcp
Avec ce code, cela va régler les 2 questions.
Il faut donc renvoyer le fichier upload.php sur le serveur web avec le code ci dessous
Il faut mettre le bon chemin sur la ligne en gras en bas.
Je n'ai pas opté pour le renommage du fichier si déjà existant. En effet cette méthode n'empêche pas éventuellement une attaque via un script qui enverrait toujours le même fichier qui serait renommé à cahque fois et remplirait automatique le disque.
La tu as un message qui te dit que le fichier existe... Donc un script ne peut pas le renvoyer dans ce cas....
<?php
$repertoire = "afs-uploads/"; // Dossier cible sur le serveur
// Créer le dossier s’il n’existe pas
if (!is_dir($repertoire)) {
mkdir($repertoire, 0755, true);
}
$fichier_temporaire = $_FILES['mon_fichier']['tmp_name'];
$nom_fichier = basename($_FILES['mon_fichier']['name']);
$chemin_final = $repertoire . $nom_fichier;
// On vérifie si fichier existant
if (file_exists($chemin_final)) {
echo "<script type='text/javascript'>alert('Erreur : le fichier existe déjà !!!');</script>";
} else {
// Déplacer le fichier
if (move_uploaded_file($fichier_temporaire, $chemin_final)) {
echo "<script type='text/javascript'>alert('Fichier envoyé avec succès dans .$chemin_final');</script>";
} else {
echo "Erreur lors de l'envoi du fichier.";
}
}
?>
<script>
window.location.href = "https://wsx5demo.afsoftware.fr/envoi.html";
</script>
Автор
C'est parfait ! Un grand merci pour ton expertise.
Parfait
Pense a cloturer le post
bonne continuation