【问题标题】:Laravel5.5 can't get ajax file uploadLaravel5.5 无法获取ajax文件上传
【发布时间】:2018-01-05 10:08:05
【问题描述】:

我在 Laravel 5.5 获取 ajax 文件时遇到问题。我可以通过 $_FILES 接收文件,但 $request->file() 不能。 这是代码。

Html & Ajax 如下:

<html>
    <form id="testForm">
        <input type="file" id="pic" name="pic">
        <button type="submit">upload</button>
    </form>
</html>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
    $(function () {
        $("#testForm").submit(function (event) {
        event.preventDefault();
        $.ajax({
             type: "post",
             url: "http://localhost/yhy-admin/public/index.php/admin_api/upload",
             data: new FormData($(this)[0]),
             processData: false,
             contentType: false,
             cache: false,
             success: function (res) {
             console.log(res);
        }
    });
  });
</script>

控制器:

public function upload(Request $request)
    {
        $data["content"]["pic"] = $request->pic;
        $data["content"]["pic_file"] = $_FILES;
        $data["content"]["all"] = $request->all();
        return $data;
    }

响应,如你所见,只有 $_FILES 无法获取文件:

{
        "content":{
            "pic":[],
            "pic_file":
                {
                    "pic":{
                    "name":"TIM\u56fe\u724720180105101806.jpg",
                   "type":"image\/jpeg",
       "tmp_name":"G:\\Users\\Administrator\\AppData\\Local\\Temp\\php9F4.tmp",
                   "error":0,
                   "size":107085
                }
             },
             "all":{"pic":[]}
        }
    }

【问题讨论】:

  • 顺便说一下,我用的是restful api,不是blade模板。
  • 但我也无法在邮递员中获取文件。

标签: javascript php jquery ajax laravel-5


【解决方案1】:

添加表单标签 enctype="multipart/form-data"

【讨论】:

    【解决方案2】:

    我解决了。 简单地写成这样:

    public function upload(Request $request)
        {
            $file = null;
            if ($request->file("pic")->isValid()) {
                $file = $request->file("pic")->store("/");
            }
            $data["content"] = $file;
    
            return $data;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 2016-07-16
      • 2018-07-27
      • 1970-01-01
      相关资源
      最近更新 更多