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 ...

6 Commentaires

Batfire
Le 18 Oct 2018
Merci beaucoup, j'avais déjà pensé à faire quelque chose dans ce style mais malheureusement l'erreur pour ce script reste la même.

Warning: in_array() expects parameter 2 to be array, string given in C:\wamp64\www\sharing\home.php on line 92.

Je ne la comprends pas, et lorsque j'essaye de mettre un simple array car ce sont des extensions rien ne s'affiche.
Clouder
Le 18 Oct 2018
Salut Batfire,

Je ne sais pas si ma réponse sera la bonne mais actuellement ton code va afficher tout ce que tu as sélectionné auparavant. Donc audio + image.

Si tu souhaites n'afficher que les fichiers audio alors il faut que tu rajoutes des contrôles. (Ex : si ton fichier audio finit par .mp3, .flac, etc.) Et pour ton image égalemenet.

Je t'illustre ça vite fait :

<?php
foreach($req as $r){
$info = new SplFileInfo($r['fileNameNew']);

if($info == in_array('.mp3', '.flac')){
?>
<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($info == in_array('.jpg', '.jpeg', '.png')){
?>
<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
}
}
?>
Batfire
Le 17 Oct 2018
<?php
foreach($req as $r){
?>
<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>

<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
}
?>
Clouder
Le 17 Oct 2018
Salut Batfire,

Si je comprends bien, tu as à la fois ton fichier image et ton fichier MP3 qui s'affichent tous les deux sur ton site ?

PS :
Peux-tu éditer ton commentaire et mettre le code dans la balise comme cela :

// Balise ouvrante pour mettre son code 
//Ici, je met mon code

// Balise fermante pour mettre son code
Batfire
Le 17 Oct 2018
<?php
foreach($req as $r){
?>
<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>

<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
}
?>

Merci beaucoup! J'ai une autre petite question 🙂 (petit probleme d'affichage...)
Je trois différents types de post (image, Mp3, vidéo).

Lorsque je pose le fichier (image, Mp3) en question arrivée bien dans mon dossier mais quand il l'affiche sur mon site les deux types se lance alors que c'est un fichier Mp3 que j'ai mis.Merci pour toute aide 🙂
Clouder
Le 06 Oct 2018
Bonjour Batfire,

Pour l'upload d'une image il te faut un formulaire et un petit script en **php** afin de télécharger ton image sur ton site !

Pour le formulaire :

<form method="post" action="" enctype="multipart/form-data">
<label for="file" style="margin-bottom: 0; margin-top: 5px; display: inline-flex">
<input id="file" type="file" name="file" class="hide-upload" required/>
<i class="fa fa-plus image-plus"></i>
<input type="submit" class="fa send-upload" name="avatar" value="">
</label>
</form>

Pour ton script :

PS : Je t'ai mis un vieux script que j'avais fait ! (C'est cadeau)

if (isset($_FILES['file']) and !empty($_FILES['file']['name'])) {      
$filename = $_FILES['file']['tmp_name'];
list($width_orig, $height_orig) = getimagesize($filename);

if($width_orig >= 500 && $height_orig >= 500 && $width_orig <= 6000 && $height_orig <= 6000){

$ListeExtension = array('jpg' => 'image/jpeg', 'jpeg'=>'image/jpeg', 'png' => 'image/png', 'gif' => 'image/gif');
$ListeExtensionIE = array('jpg' => 'image/pjpg', 'jpeg'=>'image/pjpeg');
$tailleMax = 5242880; // Taille maximum 5 Mo
// 2mo = 2097152
// 3mo = 3145728
// 4mo = 4194304
// 5mo = 5242880
// 7mo = 7340032
// 10mo = 10485760
// 12mo = 12582912
$extensionsValides = array('jpg','jpeg'); // Format accepté

if ($_FILES['file']['size'] <= $tailleMax){ // Si le fichier et bien de taille inférieur ou égal à 5 Mo
$extensionUpload = strtolower(substr(strrchr($_FILES['file']['name'], '.'), 1)); // Prend l'extension après le point, soit "jpg, jpeg ou png"

if (in_array($extensionUpload, $extensionsValides)){ // Vérifie que l'extension est correct
$dossier = "public/avatars/" . $_SESSION['id'] . "/"; // On se place dans le dossier de la personne

if (!is_dir($dossier)){ // Si le nom de dossier n'existe pas alors on le crée
mkdir($dossier);
}else{
if(file_exists("public/avatars/". $_SESSION['id'] . "/" . $_SESSION['avatar']) && isset($_SESSION['avatar'])){
unlink("public/avatars/". $_SESSION['id'] . "/" . $_SESSION['avatar']);
}
}

$nom = md5(uniqid(rand(), true)); // Permet de générer un nom unique à la photo
$chemin = "public/avatars/" . $_SESSION['id'] . "/" . $nom . "." . $extensionUpload; // Chemin pour placer la photo
$resultat = move_uploaded_file($_FILES['file']['tmp_name'], $chemin); // On fini par mettre la photo dans le dossier

if ($resultat){ // Si on a le résultat alors on va comprésser l'image

if (is_readable("public/avatars/" . $_SESSION['id'] . "/" .$nom . "." . $extensionUpload)) {
$verif_ext = getimagesize("public/avatars/" . $_SESSION['id'] . "/" .$nom . "." . $extensionUpload);
// Vérification des extensions avec la liste des extensions autorisés

if($verif_ext['mime'] == $ListeExtension[$extensionUpload] || $verif_ext['mime'] == $ListeExtensionIE[$extensionUpload]){
// J'enregistre le chemin de l'image dans filename
$filename = "public/avatars/" . $_SESSION['id'] . "/" .$nom . "." . $extensionUpload;
// Vérification des extensions que je souhaite prendre
if($extensionUpload == 'jpg' || $extensionUpload == 'jpeg' || $extensionUpload == "pjpg" || $extensionUpload == 'pjpeg'){
$image2 = imagecreatefromjpeg($filename);
}

// Définition de la largeur et de la hauteur maximale
$width2 = 720;
$height2 = 720;

list($width_orig, $height_orig) = getimagesize($filename);

// Redimensionnement
$image_p2 = imagecreatetruecolor($width2, $height2);
imagealphablending($image_p2, false);
imagesavealpha($image_p2, true);

// Cacul des nouvelles dimensions
$point2 = 0;
$ratio = null;
if($width_orig <= $height_orig){
$ratio = $width2 / $width_orig;
}else if($width_orig > $height_orig){
$ratio = $height2 / $height_orig;
}

$width2 = ($width_orig * $ratio) + 1;
$height2 = ($height_orig * $ratio) + 1;

imagecopyresampled($image_p2, $image2, 0, 0, $point2, 0, $width2, $height2, $width_orig, $height_orig);
imagedestroy($image2);

if($extensionUpload == 'jpg' || $extensionUpload == 'jpeg' || $extensionUpload == "pjpg" || $extensionUpload == 'pjpeg'){
// Content type
header('Content-Type: image/jpeg');

$exif = exif_read_data($filename);

if(!empty($exif['Orientation'])) {
switch($exif['Orientation']) {
case 8:
$image_p2 = imagerotate($image_p2,90,0);
break;
case 3:
$image_p2 = imagerotate($image_p2,180,0);
break;
case 6:
$image_p2 = imagerotate($image_p2,-90,0);
break;
}
}
// Affichage
imagejpeg($image_p2, "public/avatars/" . $_SESSION['id'] . "/" . $nom . "." . $extensionUpload, 75);
imagedestroy($image_p2);
}

$DB->insert("UPDATE utilisateur SET avatar = ? where id = ?",
array(($nom.".".$extensionUpload), $_SESSION['id']));

$_SESSION['avatar'] = ($nom.".".$extensionUpload); // On met à jour l'avatar
$_SESSION['flash']['success'] = "Nouvel avatar enregistré !";
header('Location: profil');
exit;
////////////////FIN DE COMPRÉSSION DE L'IMAGE ENREGISTRÉE////////////////

}else{
$_SESSION['flash']['warning'] = "Le type MIME de l'image n'est pas bon";
}
}
}else
$_SESSION['flash']['error'] = "Erreur lors de l'importation de votre photo.";
}else
$_SESSION['flash']['warning'] = "Votre photo doit être au format jpg.";
}else
$_SESSION['flash']['warning'] = "Votre photo de profil ne doit pas dépasser 5 Mo !";
}else
$_SESSION['flash']['warning'] = "Dimension de l'image minimum 400 x 400 et maximum 6000 x 6000 !";
}else
$_SESSION['flash']['warning'] = "Veuillez mettre une image !";
}

N'hésite pas si tu as des questions !