2017-09-02 5 views
1

Laravel 5.4を使用していて、問題が発生しています。私は現在、私のリソース製品コントローラにファイルアップロード機能を追加しています。これは、POSTとcreateおよびstore関数を使用して標準的な方法で行われます。 私が見つめたコードは、私が望むようには機能しません。 パブリック関数ストア(要求$要求) {laravel5.4ファイルのアップロードに関する問題404見つからない要求されたリソース/製品がこのサーバ上に見つかりません

$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'); 
} 

このコードは、魔女は本当に私には関係ない用量は動作しません。それはまた、このエラーを作成します。

要求されたリソース/製品は、このサーバー上に見つかりませんでした

が見つかりません。

最後の安定版に戻って問題が発生していることを確認してから、コードを修正して再度同じエラーが表示されたことを確認します。 コードが最後の安定版に戻ってもこのエラーは解決されません。

これを引き起こしている可能性があり、どのように私はこの問題を解決できるのでしょうか?

答えて

0

ファイルを移動するためのディレクトリへのフルパスを指定する必要があります。あなたのコードは次のようになりpublic/uploads/articlesためにあなたのファイルを移動したい場合例:

$file->move(public_path('uploads/articles'), $file->getClientOriginalName()); 
+0

こんにちはあなたの提案のためのおかげで、私は私の最後の作業バージョンでそれを試してみて、残念ながら、私はまだ同じエラーを取得します。 問題のあるコードを実行すると、ストア機能はフォームの送信時に実行されません。これは通常のルート問題を示していますが、ルートは変更されていません。 –

関連する問題