我正在使用Laravel 5.4并且遇到问题。我目前正在向我的资源产品控制器添加文件上载功能。这是使用POST和创建和存储功能以标准方式完成的。 我盯着的代码,其工作方式与我想要的方式不同。 公共功能商店(请求$请求) {
$product = new Product;
$product->name = $request->name;
$product->primary_category = $request->primary_category;
$product->secondary_category = $request->secondary_category;
$product->price = $request->price;
$product->stock = $request->stock;
$product->low_stock_level = $request->low_stock_level;
$product->location = $request->location;
$product->description = $request->description;
if($request->hasFile('image')){
$product->image = $request->image->storeAs('public',$request->name.'.jpg');
//Storage::putFile('public',$request->file('image'));
//$request->image->path();
//$request->image->store('public');
}
$product->active = 0;
$product->weight = $request->weight;
$product->langth = $request->langth;
$product->width = $request->width;
$product->height = $request->height;
$product->save();
return redirect('products/create');
}
然后我将代码修改为此。
公共功能商店(请求$请求) {
$product = new Product;
$product->name = $request->name;
$product->primary_category = $request->primary_category;
$product->secondary_category = $request->secondary_category;
$product->price = $request->price;
$product->stock = $request->stock;
$product->low_stock_level = $request->low_stock_level;
$product->location = $request->location;
$product->description = $request->description;
if(Input::hasFile('image')){
$file = Input::file('image');
$file->move('products/', $file->getClientOriginalName());
$image = '/products/'.$file->getClientOriginalName();
DB::table('product_images')->insert(
['product_id' => $request->product_id, 'image' => $image]
);
$product->active = 0;
$product->weight = $request->weight;
$product->langth = $request->langth;
$product->width = $request->width;
$product->height = $request->height;
$product->save();
return redirect('products/create');
}
此代码不起作用,并不是真正关心我。它的剂量也会产生这种错误。
404
未找到
在此服务器上找不到请求的资源/产品。
我确信这是导致问题的修改,因为我已恢复到我的上一个稳定版本并检查它是否有效然后我修改了代码并再次得到相同的错误。 甚至在代码改变回到最后一个稳定版本后,这个错误仍然存在。
有没有人有任何想法可能导致这个以及如何解决这个问题?
答案 0 :(得分:0)
您应指定目录的完整路径以移动文件。例如,如果您要将文件移至public/uploads/articles
,您的代码将如下所示:
$file->move(public_path('uploads/articles'), $file->getClientOriginalName());