Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 Laravel:引导模型将图像作为字符串而不是对象返回_Php_Jquery_Ajax_Twitter Bootstrap_Laravel - Fatal编程技术网

Php Laravel:引导模型将图像作为字符串而不是对象返回

Php Laravel:引导模型将图像作为字符串而不是对象返回,php,jquery,ajax,twitter-bootstrap,laravel,Php,Jquery,Ajax,Twitter Bootstrap,Laravel,问题:为什么图像以字符串形式返回,它应该是object。 我有以下用于触发模型: 模型本身: <div class="modal fade" id="add-project" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content">

问题:为什么图像以字符串形式返回,它应该是object。

我有以下
用于触发模型:

模型本身:

<div class="modal fade" id="add-project" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span>
                </button>
                <h4 class="modal-title" id="myModalLabel">Add Portfolio</h4>
            </div>
            <div class="modal-body">
                {!! Form::open(['file' => true]) !!}
                <input type="hidden" name="_token" value="{{ csrf_token() }}">
                <div class="form-group">
                    <label for="Projecttitle">Project Title</label>
                    <input type="text" name="projectTitle" class="form-control" id="projectTitle" placeholder="Project title here...">
                    <small id="title-message" style="color: red;"></small>
                </div>
                <div class="form-group">
                    <label for="description">Description</label>
                    <textarea style="width:100%; height:350px;" class="editor" id="project_description" name="project_description"></textarea>
                    <small id="description-message" style="color: red;"></small>
                </div>
                <div class="form-group">
                    <label for="uploadimage">Upload Image</label>
                    <div class="input-group">
                        <label class="input-group-btn">
                            <span class="btn btn-add">Choose File 
                                <input type="file" name="project_image" id="project_image">
                                <small id="projectImage" style="color: red;"></small>
                            </span>
                        </label>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default btn-close" data-dismiss="modal">Close</button>
                    <button type="button" class="btn btn-primary btn-save" id="addProjectToPortfolio">Add Portfolio</button>
                </div>
            </div>

            {!! Form::close() !!}
        </div>
    </div>
</div>
请注意,
project\u image
不是一个对象

我的Ajax请求是:

$('#addProjectToPortfolio').click(function() {            
    $.ajax({
        url: '/freelancer/add-to-portfolio',
        type: "post",
        data: {'projectTitle':$('#projectTitle').val(), 'project_description': $('#project_description').val(),'project_image': $('#project_image').val(),'_token': $('input[name=_token]').val()},
        success: function(data) {
            console.log('asd');
            //window.location = '/';
            if(data && data !="") {
                console.log(data);
                $('#title-message').text(data.projectTitle);
                $('#description-message').text(data.project_description);
                $('#projectImage').text(data.project_image);
            }
        },
        error: function(data) {
            // Error...
            var errors = $.parseJSON(data.responseText);
            console.log(errors);

            $.each(errors, function(index, value) {
                $.gritter.add({
                    title: 'Error',
                    text: value
                });
            });
        }

    });      
});

问题:为什么图像以字符串形式返回,它应该是object。

这里的问题可能是您只发送图像名称,即图像字段的值 相反,您需要提交整个表单 您需要将ajax数据作为

数据:新表单数据($(“#上传表单”)[0])

您可以通过以下方式访问控制器中的文件:

输入::文件('image_字段'); 或
$request->file('image_字段')

你能再解释一下吗?我没抓到你('project_image':$('#project_image').val()…它只会从project_image输入字段发送文件名…。相反,您需要将图像(即文件信息)传递给服务器,以便提交整个表单…这可以通过以下两种方式完成:$(“#表单_id”).serialize();或者通过上面提到的方法,请注意,已经按照您的方式完成了,仍然是同一个问题!@VaibhavMalve是正确的。您的代码没有进行文件上载,只是发布了一些文本字符串。这里有很多。
#upload_form
无法按字面意思工作,因为您没有表单ID。如果页面上只有1个,请尝试
$(“form”)
$('#addProjectToPortfolio').click(function() {            
    $.ajax({
        url: '/freelancer/add-to-portfolio',
        type: "post",
        data: {'projectTitle':$('#projectTitle').val(), 'project_description': $('#project_description').val(),'project_image': $('#project_image').val(),'_token': $('input[name=_token]').val()},
        success: function(data) {
            console.log('asd');
            //window.location = '/';
            if(data && data !="") {
                console.log(data);
                $('#title-message').text(data.projectTitle);
                $('#description-message').text(data.project_description);
                $('#projectImage').text(data.project_image);
            }
        },
        error: function(data) {
            // Error...
            var errors = $.parseJSON(data.responseText);
            console.log(errors);

            $.each(errors, function(index, value) {
                $.gritter.add({
                    title: 'Error',
                    text: value
                });
            });
        }

    });      
});