Laravel Route - 无法获取文件上传post参数

时间:2017-06-04 06:31:10

标签: php jquery laravel laravel-5

我使用Laravel 5.4并使用JQuery传递表单数据。下面是JQuery代码段

 $('#upload_product').on('click', function () {
        var data = $("#create_post").serializeArray();
        data.push({images: jQuery.makeArray(files)});
        console.log(data);
        jQuery.ajax({
            url: '<?php echo $edit ? 'post/update' : '/sell/upload_product';?>',
            data: data,
            type: "POST",
            cache: false,
            error: function (xhr, textStatus, errorThrown) {
                console.log(xhr.status);
                console.log(xhr.responseText);
                console.log(errorThrown);
                console.log(textStatus);
            },
            success: function (data) {
                $('#postResult').html(data);
            }
        });
    });

控制台数据

enter image description here

路线

Route::post('/sell/upload_product', function (Request $request) {
    // echo $request[9];
    return view('_components.upload_product', ['title' => $request['title'], 'availability' => $request['availability'], 'category' => $request['category'],
        'subcategory' => $request['subcategory'], 'currency' => $request['currency'], 'price' => $request['price'], 'product_details' => $request['product_details'],
        'community' => $request['community'], 'images' => $request['images']]);
});

$request['images']给出空结果。

修改1

我使用JQuery从表单中获取File对象,下面是代码片段

function preview_images() {
        files = event.target.files;

        for (var i = 0; i <= 6; i++) {
            if (i >= 1) {
                $('.compPhoto' + (i + 1)).html("<img src='" + URL.createObjectURL(event.target.files[i]) + "'>");
            } else {
                $('.compPhoto' + (i+1)).html("<img src='" + URL.createObjectURL(event.target.files[i]) + "'>");
            }
           /* console.log(URL.createObjectURL(event.target.files[i]));*/
        }
    }

当文件输入发生任何变化时,函数preview_images()被触发。

TIA

0 个答案:

没有答案