PHP echo jQuery AJAX请求

时间:2016-10-15 18:36:33

标签: javascript php jquery ajax

这是我上传图片文件的jQuery请求

$('#upload-image').change(function(e){
    var file = e.target.files[0];
    var imageType = /image.*/;
    if (!file.type.match(imageType))
        return;
    console.log(file);
    var form_data = new FormData();
    form_data.append('file', file);
    console.log(form_data);
    $.ajax({
        url: 'http://localhost/upload.php',
        cache: false,
        contentType: false,
        processData: false,
        data: form_data,
        type: 'POST',
        success: function(response){
            console.log(response);
        },
        error: function(error){
            console.log(error);
        }
    });
});

这是本地网络服务器上的upload.php

<?php
    header('Access-Control-Allow-Origin: *');
    if ( 0 < $_FILES['file']['error'] ) {
        echo 'Error: ' . $_FILES['file']['error'] . '<br>';
    }
    else {
        move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
        $target_path = $_SERVER['DOCUMENT_ROOT'] . "/uploads/" . $_FILES['file']['name'];
        echo $target_path;
    }
?>

当我上传图片并发送请求时。它返回并记录upload.php的完整代码行,而不是我想要的echo命令行的结果。我检查控制台网络选项卡,看到除了upload.php的完整代码之外没有任何响应。它真的无法处理任何服务器端。我做错了什么?

1 个答案:

答案 0 :(得分:3)

您需要确保PHP在服务器端运行。如果没有安装PHP处理程序,服务器将以文本形式返回upload.php文件的内容。我认为这是你的主要问题。

根据您的平台,您可以尝试:

首先通过在webroot文件夹中创建一个名为info.php的文件,确保您的PHP有效,并提供以下内容

<?php
phpinfo();

这应显示您的配置。然后你就可以开始调试Javascript了。内容类型应该是multipart / form-data,以便服务器知道它需要上传。

祝你好运!