使用带有Laravel验证的Dropzone插件上载多个图像
如何使用laravel 5.2验证通过dropzone插件上传的多个图像 我在谷歌上搜索并测试了许多解决方案,但确实不起作用。 谢谢你的帮助使用带有Laravel验证的Dropzone插件上载多个图像,laravel,file-upload,Laravel,File Upload,如何使用laravel 5.2验证通过dropzone插件上传的多个图像 我在谷歌上搜索并测试了许多解决方案,但确实不起作用。 谢谢你的帮助 <?php namespace App\Http\Controllers; use App\Bill; use App\Http\Requests; use Illuminate\Http\Request; use Image; class OrderBillController extends Controller { public
<?php
namespace App\Http\Controllers;
use App\Bill;
use App\Http\Requests;
use Illuminate\Http\Request;
use Image;
class OrderBillController extends Controller
{
public function saveFile(Request $request, $id)
{
//dd($request->all()); // testing
// Here I need to vaidate multiple Files
$this->validate($request, [
$request->file('file') => 'image|max:3000'
]);
$file = $request->file('file');
for ($i = 0; $i < count($file); $i++) {
$name = $id . '_' . time() . '_' . rand(11, 99) . '_' . $file[$i]->getClientOriginalName();
if ($file[$i]->move(public_path() . '/bills', $name)) {
Bill::create(['order_id' => $id, 'name' => $name]);
$img = Image::make(public_path() . '/bills/' . $name)
->resize(300, 200)
->save(public_path() . '/bills/' . 'tn_' . $name);
Bill::create(['order_id' => $id, 'name' => ('tn_' . $name)]);
}
}
}
}
如评论中所述,Dropzone一次只上载一个文件,因此您只验证一个文件。您的验证代码应该是
$this->validate($request, [
'file' => 'image|max:3000'
]);
您也不需要“for”循环,因为请求中没有发送多个文件。您只处理一个图像Dropzone不会在同一个请求中发送所有文件。每个文件都单独上载。您只需要验证控制器方法中的单个文件。我尝试了,但没有成功,因为代码提示它确实有效。。thanx。。你知道如何重新设计和编辑dropzone错误消息吗?我只使用过一次,不幸的是我不知道
$this->validate($request, [
'file' => 'image|max:3000'
]);