【问题标题】:Laravel 5 Ajax File/Image UploadLaravel 5 Ajax 文件/图像上传
【发布时间】:2015-11-28 18:53:01
【问题描述】:

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

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

这是我的代码。

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*/

刀片模板 ...

 <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>

控制器..

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

路线..

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

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

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

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

【问题讨论】:

标签: php jquery ajax laravel-5


【解决方案1】:

因为dataType:'json',它对我不起作用。如果有人遇到错误,请删除 dataType:'json'

【讨论】:

  • @lamzozo 的上述帖子几乎完美,但仅在删除 dataType 时才有效。所以,效果很好。
【解决方案2】:

有两件事要改变:

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

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

收件人:

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

因为您想发送整个表单。

在您的 html 中:

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

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

收件人:

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

【讨论】:

  • Wooooooooooooooow.. 谢谢老兄...它的工作完美。
  • 说 TypeError: Illegal invocation
  • 据说让我们在谷歌上找到答案,好人,乐于助人;)
  • @lamzozo 在这里有任何想法stackoverflow.com/questions/38893450/…
  • @Karthiga 还没有
【解决方案3】:

在您的控制器中检查您发布时获得的内容:

echo dd(Input::all()); 

检查 php.ini 中的文件对象。这在 PHP 中:

$_FILES

Request::file("logo");

是的,你真的没有发布任何数据吗?表格真的发布了吗?

【讨论】:

猜你喜欢
  • 2016-07-21
  • 2016-04-18
  • 2015-09-24
  • 2016-02-16
  • 2014-09-16
  • 2016-10-10
  • 1970-01-01
  • 2015-07-28
  • 1970-01-01
相关资源
最近更新 更多