Javascript 多种形式的ajax帖子

Javascript 多种形式的ajax帖子,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,我对使用jQuery的多端文件有问题。当我回显结果时,服务器返回 遇到一个PHP错误。严重性:通知;消息:未定义索引:文件[] 我正在使用php框架CodeIgniter。 以下是jQuery代码: jQuery(document).ready(function($){ $("#new_article").submit(function(event){ event.preventDefault(); var $form =

我对使用jQuery的多端文件有问题。当我回显结果时,服务器返回

遇到一个PHP错误。严重性:通知;消息:未定义索引:文件[]

我正在使用php框架CodeIgniter。 以下是jQuery代码:

    jQuery(document).ready(function($){
        $("#new_article").submit(function(event){
            event.preventDefault();
            var $form = $(this),
            url = $(this).attr("action");]
            var files = $form.find('input[name="files[]"]').val();
            var posting = $.post(url,{
                files: files
            });
            posting.done(function(data){
               $("#result").empty().append(data);
            });
            return false;
        });
    });
下面是一个HTML代码:

<form method="post" enctype="multipart/formdata" action="/upload" id="new_article">
    <input class="text-input" id="files" name="files[]" type="file" multiple="" accept="image/*" />
    <input type="submit" name="submit" value="Submit" />
</form>

您如何尝试回显它

我测试了你的代码,它符合你的要求。它发送文件名,但不发送文件

var_dump($_POST['files']) 
它会显示文件名

但如果您需要上传文件,这里有一个实际的解决方案:

我建议使用下一个库
1.AjaxFileUpload()
2.CodeIgniter多重上传

您的表格:

<form method="post" enctype="multipart/formdata" action="/upload" id="upload_file">
    <input class="text-input" id="files" name="files[]" type="file" multiple="" accept="image/*" />
    <input type="submit" name="submit" id="submit" />
</form>

使用ajax上传文件要比这稍微复杂一些。搜索:“使用jquery ajax上载文件”->
<script src="/assets/js/jquery.js"></script>
<script src="/assets/js/ajaxfileupload.js"></script>
<script>
    $(function() {
        $('#upload_file').submit(function(e) {
            e.preventDefault();
            $.ajaxFileUpload({
                url         :'/upload',
                secureuri      :false,
                fileElementId  : 'files',
                dataType    : 'json',
                data        : {
                    'somedata'  :  'somedata'
                },
                success  : function (data, status)
                {
                    //do something here
                }
            });
        });
    });
</script>
public function upload()
{
    $status = "";
    $msg = "";
    $file_element_name = 'files';

    if ($status != "error")
    {
        $this->load->library('upload');
        $this->upload->initialize(array( // takes an array of initialization options
            "upload_path" => "/mnt/httpd/htdocs/codeig/files/",  // physical path where the files should be saved
            "overwrite" => TRUE,
            "encrypt_name" => TRUE,
            "remove_spaces" => TRUE,
            "allowed_types" => "gif|jpg|png|doc|txt",
            "max_size" => 30000,
            "xss_clean" => FALSE
        ));

        if (!$this->upload->do_multi_upload($file_element_name))
        {
            $status = 'error';
            $msg = $this->upload->display_errors('', '');
        }
        else
        {
            $data = $this->upload->get_multi_upload_data();
            if($data)
            {
                $status = "success";
                $msg = "File successfully uploaded";
            }
            else
            {
                $status = "error";
                $msg = "Something went wrong when saving the file, please try again.";
            }
        }
        @unlink($_FILES[$file_element_name]);
    }
    echo json_encode(array('status' => $status, 'msg' => $msg));
}