par
rononedex » 18 juin 2022, 20:55
Peut être une question de chemin ?
mon dossier racine c'est public tu arrange ça a ta sauce moi j'enregistre mes images dans public/lib/img/works
teste ça tu crée un fichier constante peut importe le but est d'avoir la constante WEBROOT ou IMAGE
Code : Tout sélectionner
define('WWW_ROOT', dirname(dirname(__FILE__)));
$directory = basename(WWW_ROOT);
$url = explode($directory, $_SERVER['REQUEST_URI']);
if(count($url) == 1){
define('WEBROOT', DIRECTORY_SEPARATOR);
}else{
define('WEBROOT', $url[0] . $directory . DIRECTORY_SEPARATOR);
}
define('IMAGES', WWW_ROOT . DIRECTORY_SEPARATOR . 'public'.DIRECTORY_SEPARATOR.'inc'.DIRECTORY_SEPARATOR.'img');
Ou encore ré-factorisé ça donnerai un truc comme ça
Code : Tout sélectionner
public static function webroot(){
$path = dirname(dirname(__FILE__));
$directory = basename($path);
$url = explode($directory, $_SERVER['REQUEST_URI']);
if(count($url) == 1){
$absolute = '/';
}else{
$absolute = $url[0] . $directory .'/';
}
return $absolute;
}
Dans mon cas ça donnerai ça
Code : Tout sélectionner
/**
* ENVOIS DES IMAGES
**/
$work_id = $_GET['id'];
$files = $_FILES['images'];
$images = array();
foreach($files['tmp_name'] as $k => $v){
$image = array(
'name' => $files['name'][$k],
'tmp_name' => $files['tmp_name'][$k]
);
$extension = pathinfo($image['name'], PATHINFO_EXTENSION);
if(in_array($extension, array('jpg','png'))){
$i = [$work_id];
$db->prepare("INSERT INTO images SET work_id=?")->execute($i);
$image_id = $db->lastInsertId();
$image_name = $image_id . '.' . $extension;
move_uploaded_file($image['tmp_name'], IMAGES . '/works/' . $image_name);//constante IMAGES
resizeImage(IMAGES . '/works/' . $image_name, 736,153);//constante IMAGES
$img_name = $image_name;
$u = [$img_name,$image_id];
$db->prepare("UPDATE images SET name = ? WHERE id = ? ")->execute($u);
}
}//fin image
Peut être une question de chemin ?
mon dossier racine c'est public tu arrange ça a ta sauce moi j'enregistre mes images dans public/lib/img/works
teste ça tu crée un fichier constante peut importe le but est d'avoir la constante WEBROOT ou IMAGE
[code]
define('WWW_ROOT', dirname(dirname(__FILE__)));
$directory = basename(WWW_ROOT);
$url = explode($directory, $_SERVER['REQUEST_URI']);
if(count($url) == 1){
define('WEBROOT', DIRECTORY_SEPARATOR);
}else{
define('WEBROOT', $url[0] . $directory . DIRECTORY_SEPARATOR);
}
define('IMAGES', WWW_ROOT . DIRECTORY_SEPARATOR . 'public'.DIRECTORY_SEPARATOR.'inc'.DIRECTORY_SEPARATOR.'img');
[/code]
Ou encore ré-factorisé ça donnerai un truc comme ça
[code]
public static function webroot(){
$path = dirname(dirname(__FILE__));
$directory = basename($path);
$url = explode($directory, $_SERVER['REQUEST_URI']);
if(count($url) == 1){
$absolute = '/';
}else{
$absolute = $url[0] . $directory .'/';
}
return $absolute;
}
[/code]
Dans mon cas ça donnerai ça
[code]
/**
* ENVOIS DES IMAGES
**/
$work_id = $_GET['id'];
$files = $_FILES['images'];
$images = array();
foreach($files['tmp_name'] as $k => $v){
$image = array(
'name' => $files['name'][$k],
'tmp_name' => $files['tmp_name'][$k]
);
$extension = pathinfo($image['name'], PATHINFO_EXTENSION);
if(in_array($extension, array('jpg','png'))){
$i = [$work_id];
$db->prepare("INSERT INTO images SET work_id=?")->execute($i);
$image_id = $db->lastInsertId();
$image_name = $image_id . '.' . $extension;
move_uploaded_file($image['tmp_name'], IMAGES . '/works/' . $image_name);//constante IMAGES
resizeImage(IMAGES . '/works/' . $image_name, 736,153);//constante IMAGES
$img_name = $image_name;
$u = [$img_name,$image_id];
$db->prepare("UPDATE images SET name = ? WHERE id = ? ")->execute($u);
}
}//fin image
[/code]