[RESOLU] Upload d'image qui ne fonctionne pas

superNoob
Invité n'ayant pas de compte PHPfrance

22 août 2020, 19:21

Hello, j'ai crée un formulaire pour uploader des images dans un répertoire, mais le script me plante à chaque fois sur
->setFlash('danger', "couln't move or download picture"); alors que j'aimerais créer le fichier...
Si quelqu'un pouvait m'aider ce serait super !
Je suis sûr que c'est la fonction create picture qui est incomplête , si quelqu'un a la solution svp !? Merci !

Voilà la fonction create_picture

Code : Tout sélectionner

function create_picture($db, $title, $width, $height, $tag, $filename, $price, $userid) { $high_quality_key = mt_rand(0, 10000000); $high_quality_key = base64_encode($high_quality_key); $db->query("INSERT INTO pictures SET title = ?, width = ?, height = ?, tag = ?, filename = ?, price = ?, high_quality = ?, created_on = NOW(), user_id = ?", [ $title, $width, $height, $tag, $filename, $price, $high_quality_key, $userid ]); $db->lastInsertId(); }
et voilà le fichier upload.php qui me renvoie au dernier else à chaque fois

Code : Tout sélectionner

else { $_POST['name'] = str_replace("..", "", $_POST['name']); $_POST['name'] = str_replace(" ", "", $_POST['name']); $_POST['name'] = str_replace("/", "", $_POST['name']); if (!file_exists("/upload/{$_POST['tag']}/")) { mkdir("/upload/{$_POST['tag']}", 0777, True); } $filename = "/upload/{$_POST['tag']}/{$_POST['name']}"; $relfilename = "{$_POST['tag']}/{$_POST['name']}"; if ($_POST['price'] < 0) { $_POST['price'] = abs($_POST['price']); } if (file_exists($filename)) { $new_name = tempnam("/upload", $filename); if ($url) { file_put_contents($new_name, file_get_contents($url)); } else { move_uploaded_file($_FILES['pic']['tmp_name'], $new_name); } $id = Pictures::add_conflict($filename, $new_name, $_POST['tag'], $_POST['title'], $_POST['price'], $user['id']); App::redirect(Pictures::$CONFLICT_URL . "?conflictid={$id}"); } else { if ($url) { file_put_contents($filename, file_get_contents($url)); } else { move_uploaded_file($_FILES['pic']['tmp_name'], $filename); } if (file_exists($filename)) { if ($id = Pictures::create_picture($db, $_POST['title'], 128, 128, $_POST['tag'], $relfilename, $_POST['price'], $user['id'])) { Pictures::batch_resize($filename); App::redirect(Pictures::$VIEW_PIC_URL . "?picid={$id}"); $file_uploaded = True; } else { Session::getInstance()->setFlash('danger', "Couldn't create your picture, something wrong with the database"); } } else { Session::getInstance()->setFlash('danger', "Couldn't move or download picture"); } } } } ?>

Mammouth du PHP | 1967 Messages

24 août 2020, 11:33

il te faut remonter de ton message d'erreur trouver la condition qui n'est pas respecter, trouver pourquoi etc.
mais la sans aucune indentation de code difficile de t'aider.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube