php - 另一个 jquery ajax 文件上传问题

标签 php jquery ajax jquery-file-upload

这可能是重新发布的,因为我可能在 stackoverflow 中搜索得不够深入,尽管我发现的一些帖子对我的帮助还不够。所以我想做一件简单的事情 - 使用ajax上传图像。我有这个 HTML:

<form class="form-inline" id="navigationLinkCreationForm" >
    <input type="text" class="form-control" placeholder="Nuorodos pavadinimas" id="linkName" />
    <label class="btn btn-default btn-file">
        Įkelti ikoną(1:1)<input id="selectNavigationIcon" name="navigationIcon" type="file" style="display: none;">
    </label>
    <input type="submit" class="btn btn-success" id="createLinkButton" value="Sukurti nuorodą" />
</form>

然后我就得到了这个ajax:

$('#createLinkButton').on('click', uploadFiles);

function uploadFiles(event)
{
    event.preventDefault();

    var formData = new FormData($('#navigationLinkCreationForm'));

    $.ajax({
        type: 'POST',
        url: '../php_includes/uploadNavigationIcon.php',
        data:formData,
        success: function (data)
        {
            console.log(data);
        },
        processData: false,
        contentType: false,
        cache: false
    });
}

最后我得到了一个简单的 uploadNavigationIcon.php 文件,如果文件已提交,它只输出“S”

<?php
    if(isset($_GET['files']))
    {
        echo "S";
    }

运行此命令后,我只得到空输出,这仅意味着文件未提交。

最佳答案

试试这个,它是经过测试且有效的代码:

$(document).ready(function(){
    $('#upload').on('click', function() {
        var file_data = $('#pic').prop('files')[0];
        var form_data = new FormData();
        form_data.append('file', file_data);

        $.ajax({
                url         : 'upload.php',     // point to server-side PHP script 
                dataType    : 'text',           // what to expect back from the PHP script, if anything
                cache       : false,
                contentType : false,
                processData : false,
                data        : form_data,                         
                type        : 'post',
                success     : function(output){
                    alert(output);              // display response from the PHP script, if any
                }
         });
         $('#pic').val('');                     /* Clear the file container */
    });
});

上传.php

<?php
    if ( $_FILES['file']['error'] > 0 ){    // file data can't be fetched by using $_GET
        echo 'Error: ' . $_FILES['file']['error'] . '<br>';
    }
    else {
        if(move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']))
        {
            echo "File Uploaded Successfully";
        }
    }

?>

关于php - 另一个 jquery ajax 文件上传问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40844915/

相关文章:

php - 如何将 Laravel 用户名添加到 nginx 的访问日志中?

php - 查询输出的行多于应有的行数

php - 使用 sqlite 获得三个不同的搜索结果

php - 写入 Ajax 数据库时出错

jquery - 如何停止加载占位符并在 Jquery/CSS 中显示 div

php - 通过 Codeigniter 在 MySQL 中存储日期。日期存储为 0000 :00:00

javascript - 在 Jquery/Javascript 中访问动态属性名称

jquery - 将效果应用于 jquery-ui 选项卡

javascript - 如何将图像 src attr 替换为单击的图像? jQuery

jQuery AJAX 表单使用 Spring MVC Controller 提交问题