2016-03-24 4 views
-2

Я знаю, что этот вопрос задавали много раз, но ребята, которые спрашивали меня, имели немного другую проблему. У меня есть [простая страница для загрузки фото] [1]. Этот находится на моем локальном хосте. Я могу выбрать файл и загрузить изображение в папку для загрузки. Я могу получить ответ и использовать консоль Firefox - вкладку «Сеть» - я могу увидеть ответ, который печатается как код html. Я мог бы получить DOM с помощью функции JQuery $ ("# message"). Html(). Однако я хотел попробовать это. Вместо того, чтобы печатать теги или данные структуры JSON, просто отправьте код ошибки. echo 0; для успеха. Echo -1; для отказа. Живой код находится здесь [здесь] [2]. Теперь то, что я пытался с файлом PHP ajax_php_file.php это:Как получить ответ AJAX от JQUERY

<?php 
if(isset($_FILES["file"]["type"])) 
    { 
    $validextensions = array("jpeg", "jpg", "png"); 
    $temporary = explode(".", $_FILES["file"]["name"]); 
    $file_extension = end($temporary); 
    if ((($_FILES["file"]["type"] == "image/png") || 
     ($_FILES["file"]["type"] == "image/jpg") || 
     ($_FILES["file"]["type"] == "image/jpeg") 
) AND 
    $_FILES["file"]["size"] < 128000 AND // 125kb files can be uploaded. 
    in_array($file_extension, $validextensions)) { 
    if ($_FILES["file"]["error"] > 0) 
    echo '-1'; 
    else 
    { 
    echo '-2'; 
    if (file_exists("upload/" . $_FILES["file"]["name"])) { 
    echo '-3'; 
    } 
    else 
    { 
    $sourcePath = $_FILES['file']['tmp_name']; // Storing source path of the file in a variable 
    $targetPath = "upload/".$_FILES['file']['name']; // Target path where file is to be stored 
    move_uploaded_file($sourcePath,$targetPath) ; // Moving Uploaded file 
    echo '0'; 
    } 
    } 
    } 
    else 
    { 
    echo '-3'; 
    } 
} 
?> 


    [1]: http://stackoverflow.com/questions/36183350/why-jquery-image-uploader-doesnt-upload-image 
    [2]: http://kod.djpw.cz/vpvb 

Так HTML не высылается, только 1 или два символа. Когда я проверяю консоль Firefox на вкладке «Сеть», я вижу только JSON, но не более того. Поэтому у меня есть два вопроса. Почему я не вижу ответа, почему я не выбрал «0», когда файл был успешно загружен? А затем - как исправить код JS для получения номера или строки без использования каких-либо тегов. Это возможно? Моя цель состоит в том, чтобы начать функции, которые будут печататься отчеты «Файл successly загружен», если значение «0», или какое-то сообщение об ошибке, если значение меньше 0.

+0

вы не должны Я не вижу JSON, в данных нет JSON. (Ну, технически номер является допустимым текстом JSON, но у вас нет кода для установки правильного типа контента, поэтому вкладка «Сеть» должна обрабатывать его как HTML, а не JSON) – Quentin

+0

Я не спрашивал о JSON, но почему ничего не видно. Но, возможно, я ошибался и упускал из виду одну цифру, потому что теперь я вижу значение «0» на консоли «Ответы». –

ответ

1

В вашем JQuery

success: function(data) { 
    alert(data); 
} 
+0

Пробовал, я успешно загрузил файл, но получил это сообщение: -20. Почему есть -20, а не 0? –

+0

Может быть, потому, что у вас нет условий 'if else', которые были правильно охвачены. Кажется, что оба этих условия выполняются 'else {echo '-2';' и 'else { $ sourcePath = $ _FILES ['file'] ['tmp_name']; // Сохранение исходного пути файла в переменной $ targetPath = "upload /".$_ FILES ['file'] ['name']; // Целевой путь, в котором должен храниться файл move_uploaded_file ($ sourcePath, $ targetPath); // Перемещение загруженного файла echo '0'; } ' – SASM

+0

U R справа. Он печатает -2 (файл уже существует), а затем 0 - успех. Но я удалил файл, прежде чем я его отправил. –

Смежные вопросы