Laravel 5 Ajax 文件/图像上传
Posted
技术标签:
【中文标题】Laravel 5 Ajax 文件/图像上传【英文标题】:Laravel 5 Ajax File/Image Upload 【发布时间】: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 控制器中获取文件信息..
我该如何解决这个问题...?
【问题讨论】:
这里有任何想法***.com/questions/38893450/… 【参考方案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 在这里有任何想法***.com/questions/38893450/… @Karthiga 还没有【参考方案3】:在您的控制器中检查您发布时获得的内容:
echo dd(Input::all());
检查 php.ini 中的文件对象。这在 PHP 中:
$_FILES
Request::file("logo");
是的,你真的没有发布任何数据吗?表格真的发布了吗?
【讨论】:
php 中的文件对象呢? @marko 这里有任何想法***.com/questions/38893450/…我不认为我在发布任何数据!以上是关于Laravel 5 Ajax 文件/图像上传的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 JQuery AJAX 将图像 + 文本数据上传到 Laravel
Laravel 5.8 文件上传使用 PUT 方法和 ajax