Php afficher fichier dans le navigateur

Bonjour,

s'il vous plait j'ai voulu recuperer un ficher a partir de le base de donnee et l'apercu dans le navigateur mais ca pas marché
voila le code

{source}

<style type=text/css>

#sp{float:right;

}

#ig{

height:40px;

width:40px;

border:0;

}

</style>

<form action="" method="post" enctype="multipart/form-data" name="upload">
<input name="fichier" type="file" size="2000"></br>
<input name="btnfile" type="submit" onclick="javascript:loading()" value="go!"><span id ='sp'></span>

</form>

<?php

try{
$bdd = new PDO('mysql:host=localhost;dbname=labo', 'root', '');

}

catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}

if(isset($_POST['btnfile'])){

$tmp_name=$_FILES['fichier']['tmp_name'];
$name=$_FILES['fichier']['name'];
$size=$_FILES['fichier']['size'];
$type=$_FILES['fichier']['type'];
$erreur=$_FILES['fichier']['error'];

if(!empty($name)){

$tab_ext=explode('.',$name);

$ext=end($tab_ext);

$extensionAuto=array('pdf','docx','doc','xlsx','ppt','txt');
if (in_array($ext,$extensionAuto)==false){
echo "veuillez verifier l'extension du fichier a uploader";
}

else

{
echo $ext;
echo "Nom du fichier :".$name;
echo "<br>Taille du fichier :".$size;
echo "<br>Type de fichier :".$type;
echo "<br>Nom temporaire :".$tmp_name;
echo "<br>Erreur :".$erreur;

$stmt = $bdd->prepare("insert INTO file (name, type, data) VALUES (?, ?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $type);
$pf=fopen($tmp_name, 'rb');
$stmt->bindParam(3,$pf, PDO::PARAM_LOB);
$stmt->execute();

$stmt1 = $bdd->prepare("select *from FILE ");
$stmt1->execute();
while($fichier=$stmt1->fetch()){
echo "<a href='up.php?fich=".$fichier['name']."'>".$fichier['name']."</a></br>";
}

}

}

}

if(isset($_GET['fich'])){

$nomfich=$_GET['fich'];

$stmt = $bdd->prepare("SELECT type, UNIX_TIMESTAMP(updated_date), data FROM FILE WHERE name ='$nomfich'");

$stmt->execute();
$stmt->bindColumn(1, $type, PDO::PARAM_STR, 256);
$stmt->bindColumn(2, $updated_date, PDO::PARAM_INT);
$stmt->bindColumn(3, $data, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
if (is_null($nomfich)) {
header("Content-Type: $type");
header("Content-Disposition: inline; filename=$nomfich");
header("Last-Modified: ".date('r', $updated_date));
//return fpassthru($data);
echo $data;
} else {
$hdle = fopen($nomfich, 'wb');
//return stream_copy_to_stream($data, $hdle);
fwrite($hdle, $data);
}
}

?>

{/source}

3 réponses

  1. T'utilises bien un logiciel qui permet de lire du PHP au moins? On ne sait jamais XD
    1. Bah le navigateur ne suffit pas il faut que tu télécharge "Wampserver" ou "EasyPHP" une fois lancer ils peuvent te faire lire ton PHP en local.
      1. Contributeur
        Tu n'aurais pas du conseiller EasyPHP, il est configuré et est trop "permissif" sur l'utilisation de PHP, donc il n'est pas du tout configuré comme les serveurs web de "production" sur le net (source: experience personnelle ou un script PHP marchait sur EasyPHP et pas sur les sites .free.fr).
      2. le fichier est uploader dans la base de donnee il est codé l'orsque je le recupere je recupere les symboles autrememnt dit le navigateur ne reconstruit pas le fichier il ne recupere que le code le fichier sous forme de symbol è-_"'("'"'("%%345""'...EOR .
        merci

    Discussions similaires

    question pix mot caché

    7 réponses