2016-02-06 51 views
0

我在Windows 7系統上使用Laravel進行文件上傳時遇到了問題。上傳文件沒有問題,但是當我看到上傳文件的目標目錄不存在時。Laravel:在localhost上上傳文件時遇到問題

在Google和論壇中搜索後,我發現「Temp」目錄可能存在問題。

dd(sys_get_temp_dir())的輸出是C:\Users\RAGHAV~1\AppData\Local\Temp

但是沒有名爲RAGHAV~1的目錄(我已啓用查看隱藏文件夾)。在php.ini中,upload_tmp_dir設置爲C:\xampp\tmp

這些設置之間是否有衝突?你能幫我把文件上傳工作嗎?

在這一過程中上傳的文件控制器代碼:

$validator = $this->brandValidator($request->all()); 

if ($validator->fails()) { 
    $this->throwValidationException(
     $request, $validator 
    ); 
} 

$image_directory = public_path() . '/Uploads/Products/'; 

$result = $request->file('image')->move($image_directory); 

$brand_name = $request->input('brand_name'); 
$image = $image_directory . $request->file('image')->getClientOriginalName(); 

$id = Brand::create([ 
    'brand_name' => $brand_name, 
    'image' => $image, 
]); 
+0

與'〜1'是窗口的長文件名,縮短爲短文件名的文件名替換此

$image_directory = public_path() . '/Uploads/Products/'; $result = $request->file('image')->move($image_directory); 

。從'Raghav..'開始的'C:\ Users \'可能有一個文件夾 - 很可能是您的主目錄。 – Kenney

+0

是的,有一個文件夾 - Raghavendra。所以文件上傳的原因可能不起作用? – Raghav

回答

0

您還沒有指定該文件的路徑。僅僅用這個

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

$filename = $file->getClientOriginalName().'.' . $file->getClientOriginalExtension(); 

$file->move(public_path('Uploads/Products/'), $filename); 
+0

無法正常工作。解決此問題:由於未知錯誤,文件「bmw.jpg」未上傳。 – Raghav

+0

$ file-> getClientOriginalExtension()不是必需的。 $ file-> getClientOriginalName()將具有擴展名。 – Raghav

+0

檢查你的laravel.log的錯誤 – Richie