私は他の情報のなかで、ユーザーが画像をアップロードするフォームを持っています。データベースへの画像のパスを保存し、その画像をサーバのpublic/img/
フォルダに保存します。Laravel 4 - ファイルアップロード
{{ Form::open(['route'=>'pizzas.store', 'files'=>true]) }}
を使用してフォームを開いて、POSTファイルを開くことができるようにしました。私はfolowingているHTMLの検査:
<form method="POST" action="http://mypizza/pizzas"
accept-charset="UTF-8" enctype="multipart/form-data">
を私は自分のコントローラに投稿し、期待通りのフォームからすべてのデータを受信することができます。次のようにファイルを扱う方法は次のとおりです。私は、ファイルを選択し、フォームを送信すると
public function store() {
//TODO - Validation
$destinationPath = '';
$filename = '';
if (Input::hasFile('image')) {
$file = Input::file('image');
$destinationPath = '/img/';
$filename = str_random(6) . '_' . $file->getClientOriginalName();
$uploadSuccess = $file->move($destinationPath, $filename);
}
$pizza = Pizza::create(['name' => Input::get('name'),
'price' => Input::get('price'),
'ingredients' => Input::get('ingredients'),
'active' => Input::get('active'),
'path' => $destinationPath . $filename]);
if ($pizza) {
return Redirect::route('pizzas.show', $pizza->id);
}
//TODO - else
}
、すべてのものは何もファイルが/img
フォルダに保存されていないことを除いて、動作しているようです。データベースは、ファイルのパスと名前を正しく登録します。右if { ...}
ブロックの後dd($uploadSuccess);
を実行
、私は次を得る:
object(Symfony\Component\HttpFoundation\File\File)#220 (2) {
["pathName":"SplFileInfo":private]=> string(17) "/img\YZmLw7_2.jpg"
["fileName":"SplFileInfo":private]=> string(12) "YZmLw7_2.jpg" }
私が間違って何をしているのですか?
$destinationPath="resources/assets/images/";
又は
などのように、データベースに' PATH'を調整することが必要であろう'=>' img/'。 $ filename]); ' –
そうです、これを忘れました。 – Reflic