par
cdv » 19 avr. 2013, 16:08
Bonjour à tous !
J'ai déjà parcouru plusieurs forums et je ne comprends toujours pas comment modifier mon code afin de pouvoir choisir le fichier de destination d'un upload en local. J'ai déjà essayé de modifier $upload_path et $upload_url mais sans succès.
J'espère que vous trouverez une solution à mon problème.
Merci !
<?php
$upload_path = $_SERVER['DOCUMENT_ROOT']."/";
$upload_url = "http://".$_SERVER["HTTP_HOST"]."/";
$upload_extensions = array( 'jpg' , 'jpeg' , 'gif' , 'png' );
$upload_maxsize = 1024*1024;
function get_pathinfo($path)
{
$tbl=pathinfo($path);
if (!isset($tbl["filename"])) $tbl["filename"] = basename($tbl["basename"],".".$tbl["extension"]);
return $tbl;
}
function upload_check_extension($file)
{
global $upload_extensions;
$fileinfo = get_pathinfo($file);
return in_array(strtolower($fileinfo["extension"]),$upload_extensions);
}
function upload_check_size($filesize)
{
global $upload_maxsize;
return ($filesize <= $upload_maxsize);
}
foreach ($_FILES["files"]["error"] as $key => $error)
{
$tmp_name = $_FILES["files"]["tmp_name"][$key];
$name = $_FILES["files"]["name"][$key];
$msg = "Ok";
$url = "";
$newname = $name;
$size = $_FILES["files"]["size"][$key];
if ($error == UPLOAD_ERR_OK)
{
if (!upload_check_extension($name))
{
$msg="Erreur : extension non valide";
}
else
{
if (!upload_check_size($size))
{
$msg="Erreur : taille trop importante";
}
else
{
if (!move_uploaded_file($tmp_name, $upload_path.$newname))
{
$msg="Erreur : fichier bien reçu mais impossible à déplacer vers sa destination finale";
}
else
{
$url = $upload_url.$newname;
}
}
}
}
else
{
$msg = "Erreur lors du transfert : ".$error;
}
if ($tmp_name)
{
printf('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
($url) ? "<a href=\"".$url."\" target=\"_blank\">".$url."</a>" : "",
$name,
$size,
$msg);
$sql = 'INSERT INTO photos VALUES("","'.$_POST['continent'].'","'.$_SESSION['id'].'","'.$_POST['nom'].'","'.$name.'")';
$reponse=$pdo->prepare($sql);
$reponse->execute();
}
}
?>
Bonjour à tous !
J'ai déjà parcouru plusieurs forums et je ne comprends toujours pas comment modifier mon code afin de pouvoir choisir le fichier de destination d'un upload en local. J'ai déjà essayé de modifier $upload_path et $upload_url mais sans succès.
J'espère que vous trouverez une solution à mon problème.
Merci !
[php]<?php
$upload_path = $_SERVER['DOCUMENT_ROOT']."/";
$upload_url = "http://".$_SERVER["HTTP_HOST"]."/";
$upload_extensions = array( 'jpg' , 'jpeg' , 'gif' , 'png' );
$upload_maxsize = 1024*1024;
function get_pathinfo($path)
{
$tbl=pathinfo($path);
if (!isset($tbl["filename"])) $tbl["filename"] = basename($tbl["basename"],".".$tbl["extension"]);
return $tbl;
}
function upload_check_extension($file)
{
global $upload_extensions;
$fileinfo = get_pathinfo($file);
return in_array(strtolower($fileinfo["extension"]),$upload_extensions);
}
function upload_check_size($filesize)
{
global $upload_maxsize;
return ($filesize <= $upload_maxsize);
}
foreach ($_FILES["files"]["error"] as $key => $error)
{
$tmp_name = $_FILES["files"]["tmp_name"][$key];
$name = $_FILES["files"]["name"][$key];
$msg = "Ok";
$url = "";
$newname = $name;
$size = $_FILES["files"]["size"][$key];
if ($error == UPLOAD_ERR_OK)
{
if (!upload_check_extension($name))
{
$msg="Erreur : extension non valide";
}
else
{
if (!upload_check_size($size))
{
$msg="Erreur : taille trop importante";
}
else
{
if (!move_uploaded_file($tmp_name, $upload_path.$newname))
{
$msg="Erreur : fichier bien reçu mais impossible à déplacer vers sa destination finale";
}
else
{
$url = $upload_url.$newname;
}
}
}
}
else
{
$msg = "Erreur lors du transfert : ".$error;
}
if ($tmp_name)
{
printf('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
($url) ? "<a href=\"".$url."\" target=\"_blank\">".$url."</a>" : "",
$name,
$size,
$msg);
$sql = 'INSERT INTO photos VALUES("","'.$_POST['continent'].'","'.$_SESSION['id'].'","'.$_POST['nom'].'","'.$name.'")';
$reponse=$pdo->prepare($sql);
$reponse->execute();
}
}
?>[/php]