Laravel中所有控制器的通用文件上传

时间:2018-07-01 12:06:11

标签: php mysql ajax laravel jquery-file-upload

我正在Laravel 5.6中构建一个电子商务应用程序。我上传了很多文件,例如滑块,横幅,产品图片等。它们都是ajax文件上传。每个文件都上传到存储/应用/ {相应的文件夹}

上传后,文件信息存储到 uploaded_files mysql表中。表的结构就像

-------------------------
uploaded_files
-------------------------
ID
Path
file_code (Unique code for each file)
filename
extension
file_width
file_height
--------------------------

file_code 在其他表中用于引用该特定文件。

上传控制器

class UploadController extends Controller
{

 public function index(UploadFilesRequest $request)
 {
    $dir = "slider";
    if ($request->hasFile('image') && $request->file('image')->isValid()) {

        $file = $request->file('image');

        // path to upload file
        $path = $dir.'/'.date('Y/m');

        // new filename for uploaded files
        $name =str_slug(pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME).'-'.base_convert(time(),10,30), '-');
        $extension =$file->getClientOriginalExtension();
        $filename = $name.'.'.$extension;

        $newpath = $request->image->storeAs($path, $filename );

    }
 }
}

我想从其他控制器(滑块控制器,产品控制器等)中使用此控制器方法。每个控制器的 $ dir (上载目录)和验证规则也会发生变化。那我该怎么办?。

非常感谢您能提供的任何帮助。

0 个答案:

没有答案