Php 将图片上传到laravel中的数据库
我已经创建了一个表单,用户可以在其中添加新闻,我希望他们也能够上传图片。我也尝试过阅读其他用户创建的上传表单,但无法理解。 上传的图片需要在我创建的数据库中存储图片路径和所有其他信息。 原因是我想稍后显示用户创建的新闻和图片,以便查看。 所以我需要一些帮助,因为我不太明白如何做到这一点,我是一个初学者在拉威尔。我不想使用任何.js或其他脚本,因为我想先学习这些基础知识 我的数据库:Php 将图片上传到laravel中的数据库,php,database,laravel,image-uploading,Php,Database,Laravel,Image Uploading,我已经创建了一个表单,用户可以在其中添加新闻,我希望他们也能够上传图片。我也尝试过阅读其他用户创建的上传表单,但无法理解。 上传的图片需要在我创建的数据库中存储图片路径和所有其他信息。 原因是我想稍后显示用户创建的新闻和图片,以便查看。 所以我需要一些帮助,因为我不太明白如何做到这一点,我是一个初学者在拉威尔。我不想使用任何.js或其他脚本,因为我想先学习这些基础知识 我的数据库: class NyhetsmodulTable extends Migration { public f
class NyhetsmodulTable extends Migration {
public function up()
{
Schema::create('news', function($table)
{
$table->increments('id');
$table->string('title');
$table->string('author');
$table->string('message');
$table->boolean('active');
$table->timestamps();
$table->string('picture_path');
});
}
我的create.plade.php文件(不确定我的文件格式是否正确):
我的路线:
Route::post('adminpanel/newsmodule/create',
[
'uses' => 'NyhetsController@uploadFile',
'as' => 'adminpanel.newsmodule.upload'
]
);
表单打开标记应为
{{ Form::open(array('url' => 'adminpanel.newsmodule.create', 'files' => true)) }}
在第一行,,
不需要在表单中重新声明表单
文件应设置为true,以便它可以发送文件
为了存储图像
$news = News::find(1)
$news->image = Input::file('image');
$news->save();
既然我认为你只是在保存路径
$pathToFile = '/foo/bar/baz.jpg
Image::make(Input::file('image')->save($pathToFile);
$news->picture_path = $pathToFile;
$news->save();
您不能(也不应该)在HTML中的表单中嵌入表单。如果您的计划是使用AJAX在后台上传文件,那么您可能会成功,只要AJAX请求的隐藏输入结果是外部表单的一部分,而不是内部表单的一部分,否则其内容可能不会提交到正确的位置。但是是的,如果你只是期待一个表单中的一个表单神奇地工作,那么它不会。HTML就是不能这样工作。只需像普通输入一样将文件输入包含在外部表单中,它就会工作(确保在外部表单上使用
'files'=>true
),所以我应该在我的存储函数中使用它?这就是函数现在的样子:public function store(){$input=input::except(['''u token']);$v=Validator::make($input,News::$rules);if($v->passes()){News::create($input);return Redirect::route('adminpanel.newsmodule.index');}return Redirect::route('adminpanel.newsmodule.create')->withInput()->withErrors($v)->带有('message','save validation errors');}
@Uhmar Hasan我发现了!谢谢你的帮助!
$news = News::find(1)
$news->image = Input::file('image');
$news->save();
$pathToFile = '/foo/bar/baz.jpg
Image::make(Input::file('image')->save($pathToFile);
$news->picture_path = $pathToFile;
$news->save();