最終段階に近づいていることを願っています。ファイルをアップロードしstorage/files/
、アップロードファイルごとにuniqフォルダーをid_message
問題なく作成し、ファイルデータをテーブルに保存しますfiles
ファイルの最終パスは/storage/files/{id_message}/{file_name}
両方の変数id_message
でfile_name
あり、テーブルにありますfiles
。
FileController
の関数fileUpload
:
function fileUpload(Request $request)
{
$request->validate([
'id_message' => 'required|min:6'
]);
$idParameter = $request->id_message=$request->id_message;
$result=$request->file('file_path')->store('files/'.$idParameter);
$file = new File;
$file->id_message=$idParameter;
$file->file_path=$result;
$file->file_name=$request->file('file_path')->getClientOriginalName();
$file->save();
アップロード後、テーブルにこのデータがありますfiles
:
id id_message file_name
1 000001 Myfile.zip
/storage/app/files/000001/Myfile.zip
FileController
:getDownload
public function getDownload($id)
{
$resultFile = DB::table('files')->where('id_message',$id)->first();
$attachment = store_path().'/' . $resultFile->id_message . '/' . $resultFile->file_name;
return response()->download($attachment);
}
route
Route::get('download/{id}/{fileName}', 'FileController@getDownload')->name('downloadFile');
view.blade
<td><a href="{{ route ('downloadFile', $resultFile->file_name)}}">Download</a></td>
error
Undefined variable:resultFile
laravelでファイルを最終的にダウンロードすることに近づいていますか?
controller for view
テーブルusers
public function postLogin(Request $request)
{
request()->validate([
'id_message' => 'required',
'sms_code' => 'required',
]);
$credentials = $request->only('id_message', 'sms_code');
$request->session()->flash('success','');
if ($user=User::where($credentials)->first()) {
auth()->login($user);
return redirect()->intended('dashboard')->with('success','');
}
return Redirect::to("login")->with(['url_attribute' => $url_attribute,'id_message' => $id_message])->with('error','');
}
public function dashboard()
{
if(Auth::check())
{
return view('dashboard');
}
return Redirect::to("login")->withSuccess('Opps! You do not have access');
}