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}
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
-
T'utilises bien un logiciel qui permet de lire du PHP au moins? On ne sait jamais XD
-
le nacigateur :p
-
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.
-
ContributeurTu 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).
-
-