Comment faire l'upload d'une image ?

Bonjour comment faire l'upload d'une image ? Merci pour toute aide 🙂
Par Batfire le 26 Sep 2018
Cette pub permet au site de vivre ...

10 Commentaires

Batfire
Le 22 Oct 2018
Bonjour j'ai bien des enregistrements qui s'affichent, j'ai essayé de modifier mon code mais sans succés

<?php
foreach($req as $r){

$info = new SplFileInfo($r['fileNameNew']);

$extaudio = array('.mp3', '.flac');

$extimage = array('.png', '.jpg');

if(in_array($info->getExtension(), $extimage)){

?>
<div class="card" style="width: 45rem;">
<div class="card-body" align="center">
<h6 align="left"><?= $r['author'] ?></h6>
<?php echo"<img src='uploads/".$r['fileNameNew']."' >;"; ?>
<h3><?= $r['content'] ?></h5>
<a href="#" class="btn btn-success">Like</a>
<a href="#" class="btn btn-danger">Dislike</a>
</div>
</div><br>
<?php
}elseif(in_array($info->getExtension(), $extaudio)){
?>
<div class="card" style="width: 45rem;">
<div class="card-body" align="center">
<h6 align="left"><?= $r['author'] ?></h6>
<h3><?= $r['content'] ?></h5>
<a href="#" class="btn btn-success">Like</a>
<a href="#" class="btn btn-danger">Dislike</a>
<?php echo "<audio src='uploads/".$r['fileNameNew']."'controls>"; ?>
</div>
</div><br>
<?php
}
}
?>
Clouder
Le 21 Oct 2018
Bonjour,

Oui j'ai repris ton code et cela fonctionne chez moi !

Dans ton code dans ta boucle met ceci :

echo 1;

Pour savoir si tu as bien des enregistrements qui s'affichent
Batfire
Le 19 Oct 2018
Bonjour.
Dans ma base de données le résultat de filenamenew est "5bc844b3ba66e134090989.mp3"
Lorsque je fais clic droit -> inspecter -> console je n'ai aucun message rouge.
pour tester mon code avez-vous utilisé mon code d'upload et avez-vous utiliser des fichiers .mp3 et .Png ?
Clouder
Le 19 Oct 2018
J'ai testé vite fait ton code et pour ma part ça fonctionne de mon côté !

J'ai quelques questions du coup :

  1. Dans ta base de données quel est le résultat de fileNameNew ?
  2. Lorsque tu fais clic droit -> inspecter -> console, est-ce-que tu as un message en rouge ? (Si oui, ça dit quoi ?)
  3. Et pour le système de blog tu as un problème où ?
Batfire
Le 18 Oct 2018
je n'ai pas d'erreur mais rien ne s'affiche.

le systeme de blog (posts) ne marche pas :/
Clouder
Le 18 Oct 2018
Quel est l'erreur que tu obtiens ?

Et j'avais oublié, pour ta balise image c'est comme ceci :

<img src="smiley.gif">

et non pas

<image src="smiley.gif">
Batfire
Le 18 Oct 2018
merci de vous interreser autant a mon problème malheureusement ça ne marche pas.
Clouder
Le 18 Oct 2018
Ici tu as oublié les . devant tes extensions

// Avant
$extimage = array('png', 'jpg');

// Après
$extimage = array('.png', '.jpg');

Pour ta balise audio j'ai vu qu'il fallait faire comme ceci :

<audio controls>
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
Donc si j'applique avec ce que tu m'as mis :

<h6 align="left"><?= $r['author'] ?></h6>
<audio controls>
<source src="uploads/<?= $r['fileNameNew'] ?>" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<h3><?= $r['content'] ?></h5>
Dis-moi si cela fonctionne 🙂
Batfire
Le 18 Oct 2018
Bonjour toujours le bug de l'affichage (rien ne s'affiche)
Voici mon code:d'affichage et de upload;

<?php
foreach($req as $r){

$info = new SplFileInfo($r['fileNameNew']);

$extaudio = array('.mp3', '.flac');

$extimage = array('png', 'jpg');

if(in_array($info, $extaudio)){
?>
<div class="card" style="width: 45rem;">
<div class="card-body" align="center">
<h6 align="left"><?= $r['author'] ?></h6>
<?php echo "<audio src='uploads/".$r['fileNameNew']."' controls>"; ?>
<h3><?= $r['content'] ?></h5>
<a href="#" class="btn btn-success">Like</a>
<a href="#" class="btn btn-danger">Dislike</a>
</div>
</div><br>
<?php
}elseif(in_array($info, $extimage)){
?>
<div class="card" style="width: 45rem;">
<div class="card-body" align="center">
<h6 align="left"><?= $r['author'] ?></h6>
<?php echo "<image src='uploads/".$r['fileNameNew']."'>"; ?>
<h3><?= $r['content'] ?></h5>
<a href="#" class="btn btn-success">Like</a>
<a href="#" class="btn btn-danger">Dislike</a>
</div>
</div><br>
<?php
}
}
?>
//upload
<?php
session_start();

include('config/connexionDB.php');

if(!empty($_POST)){
extract($_POST);
$valid = true;

// On se place sur le bon formulaire grâce au "name" de la balise "input"
if (isset($_POST['post'])){

$content = htmlentities(trim($content)); // On récupère le mot de passe

$author = $_SESSION['username'];

// Si toutes les conditions sont remplies alors on fait le traitement
if($valid){

$file = $_FILES['file'];

$fileName = $_FILES['file']['name'];
$fileTmpName = $_FILES['file']['tmp_name'];
$fileSize = $_FILES['file']['size'];
$fileError = $_FILES['file']['error'];
$fileType = $_FILES['file']['type'];

$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));

$allowed = array('png','jpg','mp3');

if (in_array($fileActualExt, $allowed)) {
if ($fileError === 0) {
if ($fileSize < 100000000) {
$fileNameNew = uniqid('', true).".".$fileActualExt;
$fileDestination = 'uploads/'.$fileNameNew;
move_uploaded_file($fileTmpName, $fileDestination);
# code...
}else {
echo "Your file is too big!";
}
} else {
echo "There was an error uploading your file!";
}
} else {
echo "You can't upload files of this type!";
}


// On insert nos données dans la table utilisateur
$DB->insert("INSERT INTO posts (content, author, fileNameNew) VALUES
(?, ?, ?)",
array($content, $author, $fileNameNew));

header('Location: home.php');
exit;
}

}

}

?>
Clouder
Le 18 Oct 2018
Pour le in_array() teste comme ça :

<?php
// ...

$extaudio = array('.mp3', '.flac');

if(in_array($info, $extaudio)){
// ...
}
?>