bonjour tout le monde.
mon problème c'est que j'ai un site php hébergé sur un serveur Linux.
mon script upload le fichier via le formulaire du client dans un dossier dans le serveur.
voila la fonction qui upload le fichier, il a les paramètre suivants: le répertoire de destination, le poids de l image, le lien que je vais insérer dans la base de données, et finalement l'erreur s'il y a un problème.
voila l'appel de la fonction :
Code PHP :
upload_image ("logo\\", 512000, $_FILES, $lien, $erreur)
et voila la définition de la fonction :
Code PHP :
function upload_image ($rep, $poid_m, $tab_image, &$lien, &$erreur)
{
//$poids_max = 512000; // Poids max de l'image en octets (1Ko = 1024 octets)
$poids_max = $poid_m; // Poids max de l'image en octets (1Ko = 1024 octets)
$repertoire = $rep; // Repertoire d'upload
//$repertoire = "logo enseignes\\"; // Repertoire d'upload
if (isset($tab_image['logo']))
{
// On vérifit le type du fichier
if ($tab_image['logo']['type'] != 'image/png' && $tab_image['logo']['type'] != 'image/jpeg' && $tab_image['logo']['type'] != 'image/jpg' && $tab_image['logo']['type'] != 'image/gif')
{
$erreur = 'Erreur, Le fichier doit être au format *.jpeg, *.gif ou *.png .';
}
}
// On vérifit le poids de l'image
if ($tab_image['logo']['size'] > $poids_max)
{
$erreur = 'Erreur, L\'image doit être inférieur à ' . $poids_max/1024 . 'Ko.';
}
// On vérifit si le répertoire d'upload existe
if(file_exists($repertoire.$tab_image['logo']['name']))
{
$erreur = 'Erreur, le nom du fichier existe déja.';
}
if($erreur)
{
return false;
}
else
{
// On upload le fichier sur le serveur.
if (move_uploaded_file($tab_image['logo']['tmp_name'], $repertoire.$tab_image['logo']['name']))
{
$lien = $repertoire."/".$tab_image['logo']['name'] ;
}
else
{
$erreur = 'L\'image n\'a pas pu être uploadée sur le serveur.';
return false;
}
}
return true;
}
probleme :
supposons que j'ai indiquer le dossier "logo", pour insérer l'image, ce script insère l'image dans ce répertoire quand j'utilise un serveur local, comme easyphp, mais pour mon hébergeur distant, l'image est insérer dans le dossier courant, pas "logo", en plus l'image prend le nom "logo\image.jpg". je trouve sa bizarre. pourquoi sa fonctionne bien avec mon serveur local.
un autre petit problème, c'est que la suppression de ces fichier est interdite au niveau du serveur d'hébergement.