第一个Laravel项目。我构建了一个可以上传图像的功能。我所做的一切都基于this PDF(第98-101页)
我的blade.php
<?php echo Form::open(array('url' =>'/product/imgedit','files'=>'true'));
echo 'Adj meg egy új képet';
echo Form::file('image');
echo Form::submit('Upload File');
echo Form::close();?>
我的路由器
Route::get('product/{id}/imgedit', 'InventoryController@imgreq');
Route::post('product/imgedit', 'InventoryController@imgupl');
我的控制器:
public function imgreq($id)
{
$product = DB::select('select * FROM inventory WHERE barcode = ?', [$id]);;
return view('productimgupl', ['product' => $product]);
}
public function imgupl()
{
$file = $request->file('image');
//Display File Name
echo 'File Name: ' . $file->getClientOriginalName();
echo '<br>';
//Display File Extension
echo 'File Extension: ' . $file->getClientOriginalExtension();
echo '<br>';
//Display File Real Path
echo 'File Real Path: ' . $file->getRealPath();
echo '<br>';
//Display File Size
echo 'File Size: ' . $file->getSize();
echo '<br>';
//Display File Mime Type
echo 'File Mime Type: ' . $file->getMimeType();
//Move Uploaded File
$destinationPath = '/media/productimg/';
$file->move($destinationPath, $file->getClientOriginalName());
}
错误讯息:
InventoryController.php第28行中的ErrorException:未定义的变量: 请求
我做错了什么?
答案 0 :(得分:1)
您需要在方法的参数中引入Request
对象。像这样:
public function imgupl(Request $request) {
// code...
}
然后您可以在方法中使用$request
。
默认情况下,当您使用php artisan make:controller
时,Laravel会将此类包含在此类中,方法是将此行插入到控制器顶部:use Illuminate\Http\Request;
。您所做的就是将Request
对象转换为名为$request
的变量,以便在该方法中使用。
希望这有帮助!