L'extraction de l'Extension de Fichier en PHP (image script d'upload)
Quelqu'un peut me dire quel est le problème avec cela? Le fichier est renommé à l'aide d'un tampon de temps, mais l'extension n'est pas obtenir extraites et placées dans le nouveau nom.
$filenameext = pathinfo($filename, PATHINFO_EXTENSION);
$today = getdate();
$uniqueStr = $today[year];
$uniqueStr .= $today[mon];
$uniqueStr .= $today[wday];
$uniqueStr .= $today[mday];
$uniqueStr .= $today[hours];
$uniqueStr .= $today[minutes];
$uniqueStr .= $today[seconds];
$filename = $uniqueStr.".".$filenameext;
Le code complet:
<?php
$folder = 'images/';
$orig_w = 500;
if( isset($_POST['submit']) )
{
$imageFile = $_FILES['image']['tmp_name'];
$filenameext = pathinfo($filename, PATHINFO_EXTENSION);
$today = getdate();
$uniqueStr = $today[year];
$uniqueStr .= $today[mon];
$uniqueStr .= $today[wday];
$uniqueStr .= $today[mday];
$uniqueStr .= $today[hours];
$uniqueStr .= $today[minutes];
$uniqueStr .= $today[seconds];
$filename = $uniqueStr.".".$filenameext;
list($width, $height) = getimagesize($imageFile);
$src = imagecreatefromjpeg($imageFile);
$orig_h = ($height/$width)* $orig_w;
$tmp = imagecreatetruecolor($orig_w, $orig_h);
imagecopyresampled($tmp, $src, 0,0,0,0,$orig_w,$orig_h,$width,$height);
imagejpeg($tmp, $folder.$filename,100);
imagedestroy($tmp);
imagedestroy($src);
$filename = urlencode($filename);
header("Location: crop.php?filename=$filename&height=$orig_h");
}
?>
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner correctement - pouvez-vous imprimer votre fichier $filename juste avant pathinfo()?
Modifier après que vous avez posté votre code: alors, permettez-moi obtenir ce droit
Vous lire dans $imageFile mais d'analyser une variable non initialisée $filename?
Ne pas faire confiance à l'extension de nom de fichier pour décrire le format de fichier avec précision. Ne vous fiez pas au type mime soit.
Tout pathinfo() est censé renvoyer une chaîne de caractères unique pour les demandes, il est généralement défini pour retourner un tableau.
Essayez ceci:
$filenameext = pathinfo($chemin)['extension'];
Cependant, avez-vous connecté à la sortie de "chemin"? C'est peut être le chemin d'accès temporaire généré par votre serveur web sur télécharger, plutôt que de l'utilisateur fourni de nom de fichier, selon l'endroit où vous l'obtenir à partir d'.