Как скачать файл на Laravel, используя Datatables Yajra - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть данные таблицы, и я использую таблицы данных yajra.Работает нормально.Я добавил кнопку загрузки для загрузки файла.Этот тип файла Pdf и сохраняется в базе данных.Я пытался построить без данных, и это работает.вот так (просто пример):

@foreach ($riwayat as $i)
                      <tr class="even pointer">
                        <td class="a-center ">{{ ++$no }}</td>
                        <td class=" ">{{ $i->users->nama}} </td>
                        <td class=" ">{{ $i->nama_surat}}</td>
                        <td class=" ">{{ $i->tanggal_terbit}}</td>
                        <td class=" ">{{ $i->penerbit}}</td>
                        <td class=" "><a href="file_str/{{ $i->file}}" download={{ $i->file}}><button class="btn btn-primary btn-md">Download</button></a></td> // its my download button and work

                      </tr>
                      @endforeach 

этот загружаемый файл работает нормально, без функции контроллера и функции маршрутизации при "загрузке"

Но когда я собираю его на стороне сервера данных.При наведении курсора на кнопку загрузки не отображается правильный URL-адрес.

Вы можете увидеть мой код ниже:

public function indexDataTables()
{

    $pelatihan = Master_seminar_pelatihan::with('users')->get();

        return Datatables::of($pelatihan)
        ->addIndexColumn()
        ->addColumn('edit', function ($pelatihan) {
            return '<a href="/pelatihan/'.$pelatihan->id.'/edit" class="btn btn-xs btn-success"><i class="glyphicon glyphicon-edit"></i> Edit</a>';
        })// this edit CAN SHOW id 
        ->editColumn('download', function ($pelatihan) {
            return '<a href="file_pelatihan/'.$pelatihan->file_scan.'" class="btn btn-xs btn-primary"><i class="glyphicon glyphicon-download-alt"></i></a>';
        })// this download didnt work , this url didnt show file like file.pdf
        ->editColumn('hapus', function ($pelatihan) {

            $c = csrf_field();
            $m = method_field('DELETE');

        return "<form action='/delete1/$pelatihan->id' method='POST'>
                $c
                $m

                <button style='margin-left:10px; width: 30px;' type='submit'
                        class='btn btn-xs btn-danger delete'>
                    <i class='glyphicon glyphicon-remove-circle'></i>
                </button>
            </form>";
        })
        ->rawColumns(['hapus' => 'hapus','edit'=>'edit','download'=>'download'])

        ->make(true);

}

Эта функция загрузки файла не работает.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

Пожалуйста, попробуйте это, если вы используете хранилище файловой системы, когда можете использовать приведенный ниже код.

public function indexDataTables()
{

$pelatihan = Master_seminar_pelatihan::with('users')->get();

return Datatables::of($pelatihan)
->addIndexColumn()

->addColumn('edit', function ($pelatihan) {
    return '<a href="/pelatihan/'.$pelatihan->id.'/edit" class="btn btn-xs btn-success"><i class="glyphicon glyphicon-edit"></i> Edit</a>';
})

->editColumn('download', function ($pelatihan) {
    return '<a href="'. \Storage::url('File path here')**strong text** .'" class="btn btn-xs  btn-primary"><i class="glyphicon glyphicon-download-alt"></i></a>';
})

->editColumn('hapus', function ($pelatihan) {
    $c = csrf_field();
    $m = method_field('DELETE');

   return "<form action='/delete1/$pelatihan->id' method='POST'>
        $c
        $m
        <button style='margin-left:10px; width: 30px;' type='submit'
                class='btn btn-xs btn-danger delete'>
            <i class='glyphicon glyphicon-remove-circle'></i>
        </button>
    </form>";
})

->rawColumns(['hapus' => 'hapus','edit'=>'edit','download'=>'download'])

->make(true);
}
0 голосов
/ 23 сентября 2019

Попробуйте:

public function indexDataTables()
{

$pelatihan = Master_seminar_pelatihan::with('users')->get();

    return Datatables::of($pelatihan)
    ->addIndexColumn()

    ->addColumn('edit', function ($pelatihan) {
        return '<a href="/pelatihan/'.$pelatihan->id.'/edit" class="btn btn-xs btn-success"><i class="glyphicon glyphicon-edit"></i> Edit</a>';
    })

    ->editColumn('download', function ($pelatihan) {
        return '<a href="'.asset("public/yourpath/yourfile.extension") .'" class="btn btn-xs  btn-primary"><i class="glyphicon glyphicon-download-alt"></i></a>';
    })

    ->editColumn('hapus', function ($pelatihan) {
        $c = csrf_field();
        $m = method_field('DELETE');

       return "<form action='/delete1/$pelatihan->id' method='POST'>
            $c
            $m
            <button style='margin-left:10px; width: 30px;' type='submit'
                    class='btn btn-xs btn-danger delete'>
                <i class='glyphicon glyphicon-remove-circle'></i>
            </button>
        </form>";
    })

    ->rawColumns(['hapus' => 'hapus','edit'=>'edit','download'=>'download'])

    ->make(true);

}

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...