javascript - Laravel 500 错误,Base64 图像,Ajax 和数组的

标签 javascript php jquery ajax laravel

我正在上传,或者更确切地说,尝试使用 Ajax 将图像上传到我的 Laravel 网站。我将图像转换为 Base64 并将它们上传到服务器。它有效,有点。

我的问题是出现 500 错误。 It's the response from the server in an Iframe

这是服务器在 iframe 中的响应

问题是,我不会一直收到此错误。 只有当我尝试对响应做一些事情时,我才会得到它。

这是我处理上传的方法。 当我像这样运行它时,一切正常,我没有收到错误。

public function upload(Request $request)
{

    return var_dump($request->all());
}

但它是一个数组。所以要用它做点什么,我必须指定 key 。唯一的问题是,一旦我这样做,我就会收到 500 错误。

我想将 base64 字符串转换回图像,所以我想这样做:

file_put_contents('foo.png', base64_decode($request->all()[0]));

但这会产生错误。 $request->all() 末尾的 [0]

我无法删除它,因为它需要一个 base64 字符串而不是数组。我还想知道如果我在 var 转储中将 [0] 添加到 $request-all() 的末尾会发生什么,但我仍然遇到错误。

我只是不明白。

这是我的 Ajax 调用:

    $.ajax({
            url: "/admin/upload",
            type: "POST",
            data: queue,
            processData: false,
            error: function(xhr, status, error) {
                let err = xhr.responseText;
                //console.log(err);
                $('#upload-InnerPanel').append("<iframe width='600' height='500' src='" + err +"'> </iframe>")
            },
            success: function (xhr) {
                console.log(xhr);
            },
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

最佳答案

在评论中回答了,但仍然将其作为答案发布:

收到的 $request 值没有数字索引,因此您需要使用它的名称来访问它。而不是 $request->all()[0] , 你需要使用 $request->theData ,或在表单中命名的任何值。

关于javascript - Laravel 500 错误,Base64 图像,Ajax 和数组的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46009370/

相关文章:

javascript - jquery "empty"改变滚动条

javascript - 单击按钮时飞入内容框?

javascript - 复选框结构,如果选中单个子复选框,则应自动选中父复选框

javascript - 按 td 值(大于)过滤表行

php - Laravel 5.3 ModelFactory Seeder 调用未定义的方法 Illuminate\Database\Query\Builder::posts()

php - 如果事件已存在于完整日历中,则不应允许选择日期

javascript - 无法从 CSV 下载 .json 文件到 JSON 转换并且无法将 JSON 转换为 CSV

javascript - 如何使用 jQuery 查找 div 标签内的特定标签值

php - Laravel 的 IoC 容器 - 重新绑定(bind)抽象类型

php - 添加额外的 HTML 行 : where to put the code?