提交大文件 Laravel 和 Ajax
Posted
技术标签:
【中文标题】提交大文件 Laravel 和 Ajax【英文标题】:Submitting large files Laravel and Ajax 【发布时间】:2020-03-25 19:21:31 【问题描述】:我有一个表单,用户通过 Ajax 请求提交带有多个图像的产品并将其添加到数据库中。问题是当我选择较低(12kb)的图像时,它会保存产品,但如果它是大文件(1mb)或(400kb),它不会保存产品。我已将上传限制设置为 10000mb,如何解决此问题?
控制器
public function store(Request $request)
// ($request->all());
$formInput=$request->except('filename');
$product = product::create(array_merge($formInput, [
'seller_id'=> Auth::user()->id,
'user_id' => Auth::user()->id
]));
foreach ($request->photos as $photo)
$filename = $photo->store('public/photos');
ProductsPhoto::create([
'product_id' => $product->id,
'filename' => $filename
]);
阿贾克斯
var token = $("#token").val();
$(document).ready(function()
$("#btn").click(function()
var form = $('form')[0];
var formData = new FormData(form);
formData.append('_token', token); // adding token
$.ajax(
url: "<?php echo url('seller/product') ?>",
data: formData,
type: 'POST',
contentType: false,
processData: false,
success:function(data)
console.log(data);
);
);
);
【问题讨论】:
【参考方案1】:使用适当的错误处理并检查异常。
您应该在php.ini
配置中同时设置upload_max_filesize
、post_max_size
和memory_limit
。
示例
upload_max_filesize = 20M
post_max_size = 21M
memory_limit = 128M
注意:
post_max_size
必须略大于upload_max_filesize
【讨论】:
首先,它工作正常,因为我没有使用 Ajax,所以我能够上传更大的文件,但是在 Ajax 之后它没有上传,所以我猜问题不在 php.ini 中。 @Banujan Balendrakumar AJAX 没有上传限制。正确调试代码 别忘了重启 artisan 服务器并清除所有 laravel 缓存 我在控制台上看不到任何错误,有时我可以上传一个大文件,然后如果我再次尝试添加它会失败@Banujan Balendrakumar以上是关于提交大文件 Laravel 和 Ajax的主要内容,如果未能解决你的问题,请参考以下文章