I have an application which allow to add picture. I redefine the size in my php to not have a lots of data in my bdd. But when the picure is an verticale one it doesn't save it in my bdd. And when i read my code, I don't understand why? I think i missed something.
here is my PHP function:
function sauvegarderPrioOngletFenetre()
{
$response[0] = "erreur1";
$response[1] = "erreur2";
if (isset($_POST['id_prio']) && isset($_POST['texte'])) {
$response[0] = "erreur3";
$response[1] = "erreur4";
$id_prio = $_POST['id_prio'];
$id_onglet = $_POST['id_onglet'];
$texte = $_POST['texte'];
$position = $_POST['position'];
$dateid = $_POST['dateid'];
$image_aide = "";
$modifimg = "false";
// ajout de l'image au formulaire
if(isset($_FILES['photoAideDetail'])){
//var de l'image
$img = $_FILES['photoAideDetail']['name'];
$tmp = $_FILES['photoAideDetail']['tmp_name'];
// Définition de la largeur et de la hauteur maximale
$width_max = 50000;
$height_max = 50000;
// Content type
if (exif_imagetype($tmp) == IMAGETYPE_JPEG) {
header('Content-Type: image/jpeg');
} else if (exif_imagetype($tmp) == IMAGETYPE_PNG) {
header('Content-Type: image/png');
}
else if (exif_imagetype($tmp) == IMAGETYPE_JPG) {
header('Content-Type: image/jpg');
}
// Cacul des nouvelles dimensions
list($width_orig, $height_orig) = getimagesize($tmp);
$ratio_orig = $width_orig/$height_orig;
if ($width_max/$height_max > $ratio_orig) {
$width_max = $height_max*$ratio_orig;
} else {
$height_max = $width_max/$ratio_orig;
}
// Redimensionnement
if (exif_imagetype($tmp) == IMAGETYPE_JPEG) {
$image = imagecreatefromjpeg($tmp);
} else if (exif_imagetype($tmp) == IMAGETYPE_PNG) {
$image = imagecreatefrompng($tmp);
} else if (exif_imagetype($tmp) == IMAGETYPE_JPG) {
$image = imagecreatefromjpg($tmp);
}
$img = imagescale($image, 750);
imagejpeg($img, "../ImagesPrio/" . $img, 80);
$image_aide = file_get_contents("../ImagesPrio/" . $img);
$modifimg = "true";
}
$dbcontroller = new DBController();
//si l'id prio est 0 donc c'est une nouvelle prio on fait un insert
if ($id_prio == 0) {
$remonte = 1;
$stmt = mysqli_prepare($dbcontroller->getConn(), "INSERT INTO prio(dateid, texte, image_aide, position, id_onglet, remonte) VALUES (?, ?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'sssiii', $dateid, $texte, $image_aide, $position, $id_onglet, $remonte);
$data = $dbcontroller->executeQueryMSQL($stmt);
$id_prio_origin = $stmt->insert_id;
if ($data) {
$response[0] = "Priorité sauvegardée !";
//on remonte une prio dans un autre onglet si necessaire
$stmt2 = mysqli_prepare($dbcontroller->getConn(), "SELECT * FROM onglet WHERE id_onglet = ?");
mysqli_stmt_bind_param($stmt2, 'i', $id_onglet);
$data2 = $dbcontroller->executeSelectQueryMSQL($stmt2);
if($modifimg == "true"){
if ($data2) {
$ongletremonte = $data2[0]['id_remonte_onglet'];
$stmt3 = mysqli_prepare($dbcontroller->getConn(), "INSERT INTO prio(dateid, texte, image_aide, position, id_onglet, id_prio_origin, remonte) VALUES (?, ?, ?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt3, 'sssiiii', $dateid, $texte, $image_aide, $position, $ongletremonte, $id_prio_origin, $remonte);
$data3 = $dbcontroller->executeQueryMSQL($stmt3);
if ($data3) {
$response[0] = "Priorité sauvegardée et remontée dans un autre onglet 1!";
}
}
}elseif($modifimg == "false"){
if ($data2) {
$ongletremonte = $data2[0]['id_remonte_onglet'];
$stmt3 = mysqli_prepare($dbcontroller->getConn(), "INSERT INTO prio(dateid, texte, image_aide, position, id_onglet, id_prio_origin, remonte) VALUES (?, ?, NULL, ?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt3, 'ssiiii', $dateid, $texte, $position, $ongletremonte, $id_prio_origin, $remonte);
$data3 = $dbcontroller->executeQueryMSQL($stmt3);
if ($data3) {
$response[0] = "Priorité sauvegardée et remontée dans un autre onglet 2!";
}
}
}
} else {
$response[1] = "Priorité non sauvegardée";
}
}
//ob_clean();
return json_encode($response);
}
and here my Js function
function sauvegarderPrioOngletFenetre(){
//pour charque prio on recupere l'id et le text à inserer en bdd
$("#priorite").find('.prioDiv').each(function() {
var id_prio = $(this).data("id-prio");
var id_onglet = $(this).data("id-onglet");
if(id_onglet == ""){
id_onglet = document.getElementById("idOG").value;
}
var position = $(this).data("position");
var week = $("#semainePrio").text();
var jour = $("#selectJourPrio").val();
var dateid = week + "-D" + jour;
//A changer pour le pilote
var texte = "";
//recupere le texte de la prio
$(this).find("textarea").each(function() {
texte = $(this).val();
});
//si la prio est vide on la sauvegarde pas
vide = texte.replace(/\s/g, "");
if(vide == ""){
}else{
// Methode ajout dans tableau
var l = new FormData();
l.append('id_prio',id_prio);
l.append('texte',texte);
l.append('position',position);
l.append('id_onglet',id_onglet);
l.append('dateid',dateid);
if (document.getElementById(`photoAideDetail${position}`).files.length > 0) {
l.append('photoAideDetail', jQuery(`#photoAideDetail${position}`)[0].files[0]);
// jQuery.each(jQuery(`#photoAideDetail${position}`)[0].files, function (i, file) {
// l.append('photoAideDetail', file);
// });
}
$.ajax({
cache:false,
url: "data/sauvegarderPrioOngletFenetre",
type: "POST",
async: false,
data: l,
processData: false,
contentType: false,
success:function(response, status){
console.log(65, response);
console.log(66, l.append('photoAideDetail',jQuery(`#photoAideDetail${position}`)));
response = JSON.parse(response);
if(response[0] == "erreur1" && response[1] == "erreur2"){
erreur('Une erreur est survenu lors de la sauvegarde!');
}else{
if(response[0] == "erreur1"){
erreur(response[1]);
}else{
reussite(response[0]);
}
}
},
error: function(response, status){
}
});
}
});
}
And in my console ti show me: 65 '["erreur3","Priorit\u00e9 non sauvegard\u00e9e"]' and 66 undefined
Thank you