Php 图像上载使用Laravel 5.4在数据库上保存文件名
请帮助我创建一个图像上传系统使用Laravel 5.4,也可以保存在数据库的文件名。。。 我找不到任何与此相关的文章,我也尝试了一个youtube教程,但它没有解释文件名是如何在数据库中传输的,希望你能在这方面帮助mo 谢谢你 这里到目前为止我的代码,我做Php 图像上载使用Laravel 5.4在数据库上保存文件名,php,laravel,laravel-5.4,Php,Laravel,Laravel 5.4,请帮助我创建一个图像上传系统使用Laravel 5.4,也可以保存在数据库的文件名。。。 我找不到任何与此相关的文章,我也尝试了一个youtube教程,但它没有解释文件名是如何在数据库中传输的,希望你能在这方面帮助mo 谢谢你 这里到目前为止我的代码,我做 $this->validate(request(), [ 'article_banner' => 'required | mimes:jpeg,jpg,png | max:2000', 'arti
$this->validate(request(), [
'article_banner' => 'required | mimes:jpeg,jpg,png | max:2000',
'article_title' => 'required|max:255',
'article_date' => 'required|date',
'article_content' => 'required',
]
);
$article_banner = $request->file('article_banner');
$article_title = $request->input('article_title');
$article_date = $request->input('article_date');
$article_content = $request->input('article_content');
return $article_banner;
}
还有我每次上传docx时的验证错误。。。不是图像
下面是文章_add.php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">User Management -> Edit User</div>
<div class="panel-body">
<form class="form-horizontal" role="form" method="POST" action="{{ route('article_add.post') }}" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="form-group{{ $errors->has('article_banner') ? ' has-error' : '' }}">
<label for="article_banner" class="col-md-4 control-label">Article Banner: </label>
<div class="col-md-6">
<input id="article_banner" type="file" class="form-control" name="article_banner" required autofocus>
<p class="help-block">Example block-level help text here.</p>
@if ($errors->has('article_banner'))
<span class="help-block">
<strong>{{ $errors->first('article_banner') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('article_title') ? ' has-error' : '' }}">
<label for="article_title" class="col-md-4 control-label">Article Title: </label>
<div class="col-md-6">
<input id="article_title" type="text" class="form-control" name="article_title" value="{{ old('article_title') }}" required autofocus>
@if ($errors->has('article_title'))
<span class="help-block">
<strong>{{ $errors->first('article_title') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('article_date') ? ' has-error' : '' }}">
<label for="article_date" class="col-md-4 control-label">Article Date: </label>
<div class="col-md-6">
<input id="article_date datepicker" type="text" class="form-control datepicker" name="article_date" value="{{ old('article_date') }}" data-provide="datepicker" required autofocus>
@if ($errors->has('article_date'))
<span class="help-block">
<strong>{{ $errors->first('article_date') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('article_content') ? ' has-error' : '' }}">
<div style="padding:10px;">
<label for="article_content">Article Date: </label>
<br />
<textarea id="content article_content" type="text" class="form-control" name="article_content" autofocus>{{ old('article_content') }}</textarea>
</div>
@if ($errors->has('article_content'))
<span class="help-block">
<strong>{{ $errors->first('article_content') }}</strong>
</span>
@endif
</div>
@if(session()->has('message'))
<div class="alert alert-success">
{{ session()->get('message') }}
</div>
@endif
@if(session()->has('errors'))
<div class="alert alert-danger">
{{ session()->get('errors') }}
</div>
@endif
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Submit
</button>
<a href="{{ url('article_management') }}" class="btn btn-primary">
Back
</a>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
@extends('layouts.app'))
@节(“内容”)
用户管理->编辑用户
{{csrf_field()}}
文章标题:
此处为块级帮助文本示例
@如果($errors->has('article_banner'))
{{$errors->first('article_banner')}
@恩迪夫
文章标题:
@如果($errors->has('article_title'))
{{$errors->first('article_title')}
@恩迪夫
第条日期:
@如果($errors->has('article_date'))
{{$errors->first('article_date')}
@恩迪夫
第条日期:
{{old('article_content')}
@如果($errors->has('article_content'))
{{$errors->first('article_content')}
@恩迪夫
@如果(session()->has('message'))
{{session()->get('message')}
@恩迪夫
@如果(session()->有('errors'))
{{session()->get('errors')}
@恩迪夫
提交
@端部
将一个函数作为
public function uploadFiles($_destination_path, $images, $new_file_name) { //code to uplaod multiple fiels to path and return paths array wit file names
$file_name = str_replace(' ', '-', $new_file_name);
$paths = array('path' => $_destination_path . '/' . basename(Storage::disk($this->diskStorage)->putFileAs($_destination_path, $images, $file_name)),
'name' => pathinfo($file_name));
return $paths;
}
并将所需的参数传递给它,就像
$image = $request->file('image');
$fileName = $image->getClientOriginalName();
$destinationPath = '/images';
$img_path[] = $this->uploadFiles($destinationPath, $image, $fileName);
您将在img_path[]数组变量中获得所需的数据
public function feedbackPost(Request $request, $id)
{
$fileName1 = "";
$fileName2 = "";
$rules = array(
'conferencename' =>'required',
'yourname' =>'required',
'email' =>'required',
'objective' =>'required',
'results' =>'required',
'recommendations' =>'required',
'key_customers' =>'required',
'actions' =>'required',
'business_opportunities' =>'required',
'other_opportunities' =>'required',
'upload_leads' =>'mimes:csv,xls,xlsx',
'upload_attendees' =>'mimes:csv,xls,xlsx',
);
$validator = Validator::make($request->all(), $rules);
if ($validator->fails())
{
return back()->with('danger', 'File format not valid');
}
else
{
if($file=$request->hasFile('upload_attendees')) {
$file=$request->file('upload_attendees');
$fileName1=$file->getClientOriginalName();
if (!file_exists('uploads/feedback/attendees/'.$id.'')) {
mkdir('uploads/feedback/attendees/'.$id.'', 0777, true);
}
$destinationPath='uploads/feedback/attendees/'.$id.'';
$file->move($destinationPath,$fileName1);
}
if($file=$request->hasFile('upload_leads')) {
$file=$request->file('upload_leads');
$fileName2=$file->getClientOriginalName();
if (!file_exists('uploads/feedback/leads/'.$id.'')) {
mkdir('uploads/feedback/leads/'.$id.'', 0777, true);
}
$destinationPath='uploads/feedback/leads/'.$id.'';
$file->move($destinationPath,$fileName2);
}
$feedback = Feedback::insert([
'user_id' => $request->user_id,
'conferenceid' => $request->conferenceid,
'conferencename' =>$request->conferencename,
'yourname' =>$request->yourname,
'email' =>$request->email,
'objective' =>$request->objective,
'results' =>$request->results,
'recommendations' =>$request->recommendations,
'key_customers' =>$request->key_customers,
'actions' =>$request->actions,
'business_opportunities' =>$request->business_opportunities,
'other_opportunities' =>$request->other_opportunities,
'upload_attendees' =>$fileName1,
'upload_leads' =>$fileName2,
]);
}
return back()->with('success', 'Thanks! Your Feedback has been Submitted!');
}
我就是这样做的。你可以试试这个。到目前为止你都试过什么?您会收到什么错误消息?你对哪一部分有问题?我正在尝试获取我上传的图像的文件名,以便将其保存在数据库中。。。然后我尝试返回$article_banner=$request->file('article_banner');文件名未显示图像“article_banner”=>“required | mimes:jpeg,jpg,png | max:2000”的验证也不起作用。。。。我得到了错误htmlspecialchars()期望参数1是字符串,给定对象…现在我们有进展了。你能用你尝试过的代码更新你原来的帖子并把它格式化吗?还包括消息(HtmlSecialChars()或你得到的任何东西)和你从哪里得到它。完成更新我的帖子…你能先发布文章的代码和formUpload文件的代码吗,当你得到我说的名字,然后把它传递给DB数组,你需要手动创建数组。我得到一个错误。。。App\Http\Controllers\ArticleController::store()检查参数的缺少参数2不会变为空。在文件系统配置中也使用本地的公共存储。并制作一个存储链接。为了更好地理解,您可以参考laravel文档