--- /dev/null
+<?php
+
+namespace Cubist\Backpack\Http\Controllers\Operations\Base;
+
+use Illuminate\Support\Facades\Route;
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+
+trait ImportOperation{
+ protected function setupImportRoutes($segment, $routeName, $controller)
+ {
+ Route::match(['post'], $segment . '/import', $controller . '@importAction');
+ }
+
+ protected function setupImportDefaults()
+ {
+ $this->crud->addButtonFromView('top', 'import', 'button.import', 'end');
+ }
+
+ protected function importAction()
+ {
+ /** @var UploadedFile[] $files */
+ $files = request()->files->get('file');
+
+ $this->importFromFiles($files);
+
+ return redirect($this->crud->route);
+ }
+
+ /**
+ * @param UploadedFile[] $files
+ * @return void
+ */
+ abstract function importFromFiles($files);
+}