Afisare rezultat din Ajax

Folosesc summernote si vreau sa incarc fotografiile pe server cand le inserez in textarea
Folosesc acest script:

<textarea id="summernote" id="Post" name="post" required maxlength="99999"></textarea>
<script>            
$('#summernote').summernote({
    placeholder: 'Hello!',
    tabsize: 2,
    callbacks: {
        onImageUpload: function(files) {
            for (let i = 0; i < files.length; i++) {
                $.upload(files[i]);
            }
        }
    },
    height: 600,
});

$.upload = function(file) {
    let out = new FormData();
    out.append('file', file, file.name);

    $.ajax({
        method: 'POST',
        url: 'upload.php',
        contentType: false,
        cache: false,
        processData: false,
        data: out,
        success: function(img) {
            $('#summernote').summernote('insertImage', img);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.error(textStatus + " " + errorThrown);
        }
    });
};		   
</script>

upload.php

<?php
$user = 1;

if ($_FILES['file']['name']) {	
 if (!$_FILES['file']['error']) {
	 

    $name = md5(rand(100, 200));
    $ext = explode('.', $_FILES['file']['name']);
    $filename = $name . '.' . $ext[1];
    $destination = 'uploads/images/user/'.$user.'/' . $filename; //change this directory
    $location = $_FILES["file"]["tmp_name"];
    move_uploaded_file($location, $destination);
    echo '../uploads/images/user/'.$user.'/' . $filename;//change this URL
	
 }
 else
 {
  echo  $message = 'Ooops!  Your upload triggered the following error:  '.$_FILES['file']['error'];
 }
}

?>

Este functional, cand inserez o fotografiie se incarca pe server si imi apare dupa in textarea, dar daca includ in uploads.php :

include_once 'includes/db.php'; 
include_once 'includes/functions.php';

Cand incerc sa adaug o fotografie se incarca pe server dar nu mai este afisata in textarea

Textul din

echo '../uploads/images/user/'.$user.'/' . $filename;

ar trebui sa ajunga in img din

$('#summernote').summernote('insertImage', img);

dar dupa includerea acelor 2 .php-uri nu mai ajunge acel text acolo.

Cum as putea gasi problema? Erori nu primesc

Fără access la cele două fișiere (și ce mai includ ele) nu avem cum să ne dăm seama.

Eu unul aș căuta să văd dacă nu cumva se execută ceva care are fie exit() ori suprascrie $_FILES (puțin probabil).

Cel mai probabil codul tău procesează ceva POST și apoi apelează exit(). Cu step debug poți să vezi pe rând ce linii de cod se execută, însă trebuie să-l instalezi/setezi.

O altă variantă ar fi să faci debugging ca pe vremuri :grinning_face_with_smiling_eyes: adică să adaugi câte un die("aici"); pe rând după fiecare bucată de cod din fișierele alea, să-ți dai seama ce se execută și unde se blochează. Old school stuff.

1 Like