laravel - 使用 Dropzone 插件和 Laravel 验证上传多个图像

标签 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 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)]);

            }
        }
    }
}

第一次评论后我尝试了这个

    public function saveFile(Request $request, $id)
{
    //dd($request->all());
    $this->validate($request, [
        $request->file('file') => 'image|max:3000'
    ]);

    $file = $request->file('file');
        $name = $id . '_' . time() . '_' . rand(11, 99) . '_' . $file->getClientOriginalName();
        if ($file->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 一次仅上传 1 个文件,因此您仅验证一个文件。您的验证码应该是

$this->validate($request, [
        'file' => 'image|max:3000'
    ]);

您也不需要“for”循环,因为请求中没有发送多个文件。您只是处理一张图像

关于laravel - 使用 Dropzone 插件和 Laravel 验证上传多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38065342/

相关文章:

php - 以相同的 CodeIgniter 形式上传图像和文本输入

facebook - OAuth2、Facebook 身份验证和移动 API

php - 在 Laravel 5.2 中找不到类 'App\Http\Controllers\Session'

javascript - 使用 Laravel 自动完成谷歌地图

php - Laravel 调试/堆栈跟踪页面在单击在线时尝试打开 phpstorm 而不是 VSCode

php - 我们可以在不等于的情况下使用 whereIn 子句吗

java - 如何在Java中传递带有关键参数的文件?

Angular 文件上传包含文件与同一帖子中的其他数据

Javascript 不适用于 ajax 生成的代码?

java - 使用 ExtJS 和 Jersey 上传文件