Laravel 5 Ajax 文件/图片上传

2021-12-18 00:00:00 jquery php laravel-5 ajax

我的 Laravel ajax 应用程序有问题,

我无法通过 ajax POST 上传图片/文件.

这是我的代码.

阿贾克斯..

/*添加新的分类事件*/$(".addbtn").click(function(){$.ajax({url:'添加目录',数据:{logo:new FormData($("#upload_form")[0]),},数据类型:'json',异步:假,类型:'帖子',过程数据:假,内容类型:假,成功:功能(响应){控制台日志(响应);},});});/*添加新的类别事件*/

刀片模板...

 
<div class="form-group"><label for="catagry_name">标志</label><input type="file" class="form-control" id="catagry_logo"><p class="invalid">输入类别标志.</p>

</表单>

<div class="modelFootr"><button type="button" class="addbtn">添加</button><button type="button" class="cnclbtn">重置</button>

控制器..

公共函数catadd(){if (Input::hasFile('logo')){返回文件存在";}别的{返回文件不存在";}}

路线..

 Route::post('add-catagory',['as'=>'catagory_add','uses'=>'MastersController@catadd']);

我的代码有什么错误???

我无法在 Laravel 控制器中获取文件信息..

我该如何解决这个问题...?

解决方案

有两点需要改变:

从以下位置更改您的 js 文件:

 数据:{logo:new FormData($("#upload_form")[0]),},

致:

 data:new FormData($("#upload_form")[0]),

因为您想发送整个表格.

在您的 html 中:

为您的文件输入字段添加名称

致:

I have an issue in my laravel ajax application,

I cant upload images/files through ajax POST.

here is my code.

Ajax..

/*Add new catagory Event*/
$(".addbtn").click(function(){
$.ajax({
      url:'add-catagory',
      data:{
        logo:new FormData($("#upload_form")[0]),
        },
      dataType:'json',
      async:false,
      type:'post',
      processData: false,
      contentType: false,
      success:function(response){
        console.log(response);
      },
    });
 });
/*Add new catagory Event*/

Blade template ...

 <form enctype="multipart/form-data" id="upload_form" role="form" method="POST" action="" >
      <div class="form-group">
        <label for="catagry_name">Name</label>
         <input type="hidden" name="_token" value="{{ csrf_token()}}">
        <input type="text" class="form-control" id="catagry_name" placeholder="Name">
        <p class="invalid">Enter Catagory Name.</p>
      </div>
      <div class="form-group">
        <label for="catagry_name">Logo</label>
        <input type="file" class="form-control" id="catagry_logo">
        <p class="invalid">Enter Catagory Logo.</p>
    </div>

    </form>
    </div>
    <div class="modelFootr">
      <button type="button" class="addbtn">Add</button>
      <button type="button" class="cnclbtn">Reset</button>
    </div>
  </div>

Controller ..

public function catadd(){
    if (Input::hasFile('logo'))
    {
       return "file present";
    }
    else{
        return "file not present";
    }
}

Route ..

 Route::post('add-catagory',['as'=>'catagory_add','uses'=>'MastersController@catadd']);

What is the error in my code ???

I cant get the file information in laravel controller..

How can i solve this issue...?

解决方案

Two things to change:

Change your js file from:

 data:{
    logo:new FormData($("#upload_form")[0]),
 },

To:

 data:new FormData($("#upload_form")[0]),

Because you would like to send the whole form.

In your html:

Add a name to your file input field

<input type="file" class="form-control" id="catagry_logo">

To:

<input type="file" name="logo" class="form-control" id="catagry_logo">

相关文章