這是我的控制器
public function createAdmin()
{
$photo=$_FILES['bannerPic']['name'];
$tempname=$_FILES['bannerPic']['tmp_name'];
// echo $tempname." ".$photo;
move_uploaded_file($tempname, 'picture/banner/'.$photo);
$data=[
'sliderPic' => $photo,
];
dd($data);
// \App\Models\Banner::create($data);
// return view('Banner');
}
這是我的路線
Route::post('/BannerEdit', [App\Http\Controllers\BannerController::class,
'createAdmin']);
這是我的刀片形式
<form action="{{ url('') }}/BannerEdit" method="post" class="col-12"
enctype="multipart/form-data">
@csrf
<div class="mb-3 col-12">
<label class="col-4 text-label form-label">Banner Photo*</label>
<input type="file" name="bannerPic" class="form-control input-rounded col-4 mb-3"
required>
</div>
<div class="mb-3 text-end">
<input type="submit" class="btn btn-primary" value="Upload">
</div>
</form>
當我提交資料時,它給了我一個錯誤
move_uploaded_file(picture/banner/favicon.jpg):打開流失敗:沒有這樣的檔案或目錄
但是這個目錄存在
我檢查了本地主機的完整路徑然后它不支持http路徑
uj5u.com熱心網友回復:
您需要像這樣使用 getcwd() 函式:
$dirpath = realpath(目錄名(getcwd()));
所以你的控制器代碼將是:
public function createAdmin()
{
$photo=$_FILES['bannerPic']['name'];
$tempname=$_FILES['bannerPic']['tmp_name'];
// echo $tempname." ".$photo;
$dirpath = realpath(dirname(getcwd()));
move_uploaded_file($tempname, $dirpath.'/'.$photo);
$data=[
'sliderPic' => $photo,
];
dd($data);
// \App\Models\Banner::create($data);
// return view('Banner');
}
讓我知道它是否有效.. 如果沒有,那么我們將修改 $dirpath 變數
PS:此解決方案將在服務器上運行。你是在服務器上作業還是在本地主機上作業?
編輯:
其他解決方案是使用以下函式來獲得正確的目錄結構:
$dirpath = public_path('picture/banner/');
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/445104.html
