Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Ajax中发送文件和数据_Php_Jquery_Html_Ajax_Laravel - Fatal编程技术网

Php 在Ajax中发送文件和数据

Php 在Ajax中发送文件和数据,php,jquery,html,ajax,laravel,Php,Jquery,Html,Ajax,Laravel,我正在尝试将文件和数据一起发送到控制器 当我发送文件时,它工作正常,但当我试图发送数据和文件时,我什么也得不到 contentType: false, processData: false, 当我删除这些代码时,我可以发送数据 我该怎么办 html代码 <div class="form-group "> <input class="form-control" id="title" name="title" type="text" /> </div>

我正在尝试将文件和数据一起发送到控制器 当我发送文件时,它工作正常,但当我试图发送数据和文件时,我什么也得不到

contentType: false,
processData: false,
当我删除这些代码时,我可以发送数据 我该怎么办

html代码

<div class="form-group ">
    <input class="form-control" id="title" name="title" type="text" />
</div>
<div class="form-group ">
    <textarea class="form-control" cols="40" id="desc" name="textarea" rows="10"></textarea>
</div>
<div class="form-group ">
    <div class="">
        <div class="radio">
            <label class="radio">
                <input name="answer" id="respawn" type="radio" value="1" /> 1
            </label>
        </div>
        <div class="radio">
            <label class="radio">
                <input name="answer" type="radio" value="2" /> 2
            </label>
        </div>
        <div class="radio">
            <label class="radio">
                <input name="answer" type="radio" value="3" /> 3
            </label>
        </div>
    </div>
</div>
<div class="form-group">
    <input type="file" name="file" id="file">
</div>
ajax代码

$("#offer").click(function() {
    var title = $("#title").val();
    var desc = $("#desc").val();
    var respawn = $("#respawn").val();
    var pic = new FormData();
    pic.append('file', $('#file')[0].files[0]);
    var offer = {
        title: title,
        desc: desc,
        respawn: respawn,
        pic: pic
    };
    $.ajax({
        method: 'POST',
        url: '/create',
        headers: {
            'X-CSRF-TOKEN': CSRF_TOKEN
        },
        data: offer,
        contentType: false,
        processData: false,
        success: function(response) {
            alert("Successful!")
        }
    });
});

使用以下代码:

$.ajax({
    method:'POST',
    url:'/create',
    headers: {
        'X-CSRF-TOKEN': CSRF_TOKEN
    },
    data:pic,
    contentType: false,
    processData: false,
    success:function(response){
        alert("Successful!")
    }
});

您正在使用formData代替pic。

请使用以下代码:

$.ajax({
    method:'POST',
    url:'/create',
    headers: {
        'X-CSRF-TOKEN': CSRF_TOKEN
    },
    data:pic,
    contentType: false,
    processData: false,
    success:function(response){
        alert("Successful!")
    }
});

您使用的是formData而不是pic。

很抱歉,我正在处理一些其他函数和变量,但我忘了删除它们我正在尝试发送要约而不是FormDataOK只需将要约对象附加到pic本身并发送它们。。它会工作的你能给我确切的代码吗?我不明白它是如何工作的var pic=new FormData();pic.append('file',$('#file')[0].files[0]);图.附加(“标题”,标题);pic.追加('desc',desc');图.附加(“重生”,重生);并使用$.ajax({method:'POST',url:'/create',headers:{'X-CSRF-TOKEN':CSRF_TOKEN},数据:pic,contentType:false,processData:false,success:function(response){alert(“Successful!”)}发送;抱歉,我正在处理一些其他函数和变量,但我忘记删除它们了我正在尝试发送offer而不是formdataok只需将offer对象附加到pic本身并发送。。它会工作的你能给我确切的代码吗?我不明白它是如何工作的var pic=new FormData();pic.append('file',$('#file')[0].files[0]);图.附加(“标题”,标题);pic.追加('desc',desc');图.附加(“重生”,重生);并使用$.ajax({method:'POST',url:'/create',headers:{'X-CSRF-TOKEN':CSRF_TOKEN},数据:pic,contentType:false,processData:false,success:function(response){alert(“Successful!”)}发送;