图片未使用Ajax发布(无需提交表单) [英] Image not getting posted with ajax(without submitting the form)

查看:118
本文介绍了图片未使用Ajax发布(无需提交表单)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的表单是-

<form id="fileupload" method="post" enctype="multipart/form-data">
     <input type="file" id="headerimage" spellcheck="true" class="typography" name="headerimage">
</form>

我的Ajax代码是-

var fileData = new FormData($('#fileupload'));
            fileData.append('imagefile', $('#headerimage')[0].files);
            $.ajax({
                    type    : 'post',
                    data    : fileData,
                    url     : 'UploadImage.php',
                    dataType: 'json',
                    processData: false,
                    success : function(data)
                    {
                        alert("done");
                    },
                });

Php代码-

<?php
    # Data Base Connection
    require_once('conn/dbConn.php');
    var_dump($_REQUEST);
    if (!empty($_FILES)) {
        var_dump($_FILES);
    }

请帮助.在php页面上,我没有获取文件数据.

Please Help. On the php page i am not getting file data.

推荐答案

JS代码-

            var form = document.getElementById('fileupload');
            var fileInput = document.getElementById('headerimage');
            var file = fileInput.files[0];
            var formData = new FormData();
            var filename = '';
            formData.append('file', file);
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4) {
                    filaname = xhr.responseText;
                }
            }
            // Add any event handlers here...
            xhr.open('POST', form.getAttribute('action'), true);
            xhr.send(formData);

PHP代码-

<?php
# Data Base Connection
require_once('conn/dbConn.php');
if (!empty($_FILES)) {
    $file = $_FILES;
    if ($file['file']['error'] == 0) {
        $name    = explode('.', $file['file']['name']);
        $newName = "header.".$name[count($name)-1];
        if (move_uploaded_file($file['file']['tmp_name'], "../assets/Themes/Default/".$newName)) {
            echo $newName;
            exit;
        }
    } else {
        echo "";
        exit;
    }
} else {
    echo "";
    exit;
}

这篇关于图片未使用Ajax发布(无需提交表单)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆