2016-02-06 54 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