2016-04-12 11 views
0

私はLaravelで画像をアップロードするには、このコードを持っている:laravelとの問題 - str_random

 public function store(Requests\ArticleRequest $request) 
    { 
     $article['photo']= 'http://nationaluasi.com/dru/content/hotelIcon.png'; 
     $file = array('image' => $request->file('image')); 
     // setting up rules 
     $rules = array('image' => 'required',); //mimes:jpeg,bmp,png and for max size max:10000 
     // doing the validation, passing post data, rules and the messages 
     $validator = Validator::make($file, $rules); 
     if ($validator->fails()) { 
     // send back to the page with the input data and errors 
     $article['photo'] = null; 

     } 
     else { 
    // checking file is valid. 
     if ($request->file('image')->isValid()) { 
     $destinationPath = public_path().'/images'; // upload path 
     $extension = $request->file('image')->getClientOriginalExtension(); // getting image extension 
     $article['photo'] = str_random(5).'.'.$extension; // renameing image 
     $request->file('image')->move($destinationPath, $article['photo']); // uploading file to given path 
     // sending back with message 

     } 
     else { 

     } 
    } 



     $article = new Article($request->all()); 
     $article['key']= str_random(30); 


     Auth::user()->articles()->save($article); 

     Alert::success('nnn','Good job!')->persistent("Close"); 



     return redirect('auctions'); 
    } 

ので、すべてが画像のアップロードと罰金ですが、私は私の/public/images画像をフォルダ表示される名前がありますDiYhh.pngをしかし、データベースに格納されています:/tmp/phpVu3QOa

なぜ、プロンプトは何ですか? imageデータベースに同じ名前を格納しないでください(DiYhh.png)/ tmp/... ???

+0

データベースに変更を保存する場所はどこですか?コードスニペットでは、 '$ article ['image']'をファイル名に設定するだけですが、実際にどこに保存するのかは表示されません。 –

+0

これを商品テーブルに保存します - カラムイメージ... – Andrew

+0

そのコードを質問にも追加できますか? –

答えて

1

コードでは、記事を何かに設定してから上書きします。あなたがこれを行うとき:

$article['photo'] = str_random(5).'.'.$extension; 
$request->file('image')->move($destinationPath, $article['photo']); 

あなたは正常にファイルを適切な場所に移動しています。

$article = new Article($request->all()); 

を、今、コードが$article['photo']はあなたが望んでいたファイル名が含まれていることを忘れている - それが上書きされていますので:しかし、その後、数行のさらに下に、あなたはこれを行います。

新しい記事の行を一番上に移動し、そのオブジェクトを変更し、すべてを確認したら保存することをおすすめします。

+0

エラーが発生しました:整合性制約違反:1048 '写真'の列はnullにはなれません – Andrew

+0

もう一度写真の変数を設定し直す必要があります。 $ article-> photo = $ filename; '$ article-> all());' '$ article-> photo = $ filename;'そして最後に '$ article-> save();'を実行します。これはあなたがファイル名を設定したことを前提としており、望むように他の行を間に入れることができます。 –

関連する問題