Téléchargement de fichiers depuis ma page web

Petit nouveau ! | 6 Messages

18 mars 2015, 18:26

Bonjour tout le monde.

Je débute en PHP. Je viens de créer une page web simple avec un formulaire. J'aimerais qu'à la validation du formulaire, des fichiers puissent être téléchargés directement sur la machine.
J'aimerais donc pour cela installer un serveur ftp sur lequel seront les fichiers et pouvoir télécharger les fichiers de ce serveur à travers la page web.

Quelqu'un aurait une idée de comment faire cela?

Merci d'avance,
mibrahimamadou

Eléphant du PHP | 103 Messages

18 mars 2015, 18:41

Bonjour,
Qu'entends-tu par télécharger , Download ou Upload ?

Petit nouveau ! | 6 Messages

18 mars 2015, 18:54

Re,
Plus précisément, j'aimerais faire un download de fichiers par formulaire ( on doit choisir les fichier qu'on veux télécharger ).
Merci

Eléphant du PHP | 103 Messages

18 mars 2015, 19:03

<? if(@$_POST["champ"] == "wearephp") {
// si le visiteur a tapé "wearephp" dans le champ du formulaire
// alors la page normale s'affiche
?>

<html>
<head>

<title>Redirection en htm</title>

<meta http-equiv="refresh" content="0; URL=[Adresse du fichier]">
</head>

<body>
</body>

</html>


<? } else {
// sinon, le formulaire s'affiche
?>
<center><form method="post">
<table><tr>
<style>button, input, select, textarea {
width: 400px;
}</style>
<h1><input textarea="" name="champ">
</h1><td><input type="Submit" value="Entrer"</td></center>
<? } ?>

Petit nouveau ! | 6 Messages

18 mars 2015, 19:16

En fait j'ai déjà fait cette partie. Par exemple dans ma page formulaire.php, j'ai:
<div id="body">

<h2><center>This platform will enable you to configure your radio device.</h2><BR>

Please select your geographic zone (Asia, Europe, US) :<BR>

<FORM method="post" action="treatment.php">
<INPUT TYPE=RADIO NAME="ZONE" VALUE="AP" >Asie<BR>
<INPUT TYPE=RADIO NAME="ZONE" VALUE="EM" CHECKED >Europe<BR>
<INPUT TYPE=RADIO NAME="ZONE" VALUE="AM" >US<BR>

<INPUT TYPE="SUBMIT" NAME= "OK" VALUE="Generate the configuration">
</FORM><BR>

J'aimerais sur treatment.php permettre de télécharger le fichier de conf en fonction du choix de la personne. Et ces fichiers de conf, j'aimerais les placer sur un serveur ftp.

Merci,
mibrahimamadou

Nestecha
Invité n'ayant pas de compte PHPfrance

18 mars 2015, 23:53

$sSiteURL = 'http://www.tonsite.com/';
if (isset($_POST['zone'])) {
     switch($_POST['zone']) {
          case 'em':
          $file = 'tonfichierEM.xxx';
          break;

          case 'ap':
          $file = 'tonfichierAP.xxx';
          break;

          case 'am':
          $file = 'tonfichierAM.xxx';
          break;

          default:
          $file_url = '';
     }
}

$file_url = $sSiteURL . $file;
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); 
readfile($file_url);

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 mars 2015, 00:25

Attention au paramètreallow_url_fopen si non activé ce code ne fonctionnera pas.
un chemin sur la machine est recommandé. S'il s'agit d'un autre serveur il faudra faire autrement pour récupérer le contenue du fichier (connexion ftp ou autre).

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 6 Messages

19 mars 2015, 11:26

Merci à tous pour vos réponses :).
@Nestecha, j'ai essayer ton code et pour $sSiteURL, j'ai mis l'url du dossier dans lequel se trouve mes fichiers de conf: $sSiteURL = 'https://machinewift01/captive_portal/Paquage_conf/';

Mon problème est qu'au lieu de télécharger le bon fichier ( tonfichierEM.xxx par exemple), je telecharge le dossier Paquage_conf.
Quand je met
$sSiteURL = 'https://machinewift01/captive_portal/index.php/'; ( l'url de mon site) , je télécharge index.php

Aurais-tu une solution pour moi?
Merci