Php Cont:Url转换为字符串并保存问题
这是我以前的帖子: 谢谢大家在之前的帖子中给我建议。现在我有另一个问题。我想寻求帮助并教我如何处理这些问题 我当前想在数据库中保存图像路径。正如前面的帖子提到的。我的数据库现在正在保存值1,而不是路径。这是我的函数上传代码Php Cont:Url转换为字符串并保存问题,php,mysql,laravel,Php,Mysql,Laravel,这是我以前的帖子: 谢谢大家在之前的帖子中给我建议。现在我有另一个问题。我想寻求帮助并教我如何处理这些问题 我当前想在数据库中保存图像路径。正如前面的帖子提到的。我的数据库现在正在保存值1,而不是路径。这是我的函数上传代码 public function upload(Request $request, Task $task) { if(isset($_POST['delete'])) { $task->delete(); return redir
public function upload(Request $request, Task $task)
{
if(isset($_POST['delete'])) {
$task->delete();
return redirect('/');
}
else
{
$task->image = \Storage::disk('public')->put('image', Request::file('image'));
$url = Storage::url('image');
$url= urldecode(string ($url));
$url->save();
$task->save();
return redirect('/');
}
我还想在welcome.blade.php中显示这一点。那么,我要添加和更改什么
这是我的全部代码:
public function index()
{
$user = Auth::user();
return view('welcome',compact('user'));
}
public function add()
{
return view('add');
}
public function create(Request $request)
{
$task = new Task();
$task->description = Request::get('description');
$task->user_id = Auth::id();
$flagInserted = \Storage::disk('public')->put('image', Request::file('image'));
$url = '';
if ($flagInserted) {
$url = Storage::url('image');
}
$task->image = $url;
$duplicate = Task::where('description',Request::get('description'))->first();
if($duplicate)
{
print_r("The data is exists");
}
else
{
$task->save();
}
return redirect('/');
}
public function edit(Task $task)
{
if (Auth::check() && Auth::user()->id == $task->user_id)
{
return view('edit', compact('task'));
}
else {
return redirect('/');
}
}
public function update(Request $request, Task $task)
{
if(isset($_POST['delete'])) {
$task->delete();
return redirect('/');
}
else
{
$task->description = Request::get('description');
$task->save();
return redirect('/');
}
}
public function upload(Request $request, Task $task)
{
if(isset($_POST['delete'])) {
$task->delete();
return redirect('/');
}
else
{
$flagInserted = \Storage::disk('public')->put('image', Request::file('image'));
$url = '';
if ($flagInserted) {
$url = Storage::url('image');
}
$task->image = $url;
$task->save();
return redirect('/');
}
}
public function storeTask(){
$task= new Task();
$task->name = request('name');
$task->description = request('description');
$task->image = request('image');
$task->save();
return redirect('/task');
}
我已经读了拉威尔的那一页。但不是很确定,我怎样才能解决这个问题 你试过这个吗<代码>请求::文件到
$Request->file
及
回复照明\Support\Facades\Request
至使用照明\Http\Request代码>
参考链接在这里你可以看到
使用照亮\Http\Request代码>未导入照明\Support\Facades\Request
公共函数上传(请求$Request,任务$Task)
{
如果(isset($_POST['delete'])){
$task->delete();
返回重定向('/');
}否则{
$task->image=\Storage::disk('public')->put('image',$request->image);
$task->save();
返回重定向('/');
}
}
参考链接
并在刀片内部打印图像
您可以在laravel上使用Storage::url()
函数
EX:Storage::url($task->image)//这里的图像值来自任务表数据
如果文件是否保存,下面的ref link将返回1或0。这就是它将1插入数据库的原因:
\Storage::disk('public')->put('image', Request::file('image'))
成功保存后,要获取文件url,可以使用以下代码:
$url = \Storage::url('file.jpg');
因此,您的代码将是:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FileuploadController extends Controller
{
//
public function index() {
return view('fileupload');
}
public function save(Request $request) {
$image = $request->file('image');
$fileName = time() . '.' . $image->getClientOriginalExtension();
$img = \Image::make($image->getRealPath());
$img->stream(); // <-- Key point
$flagInserted = \Storage::disk('public')->put($fileName, $img);
$url = '';
if ($flagInserted) {
$url = \Storage::url('app/public/' . $fileName);
}
dd($url);
}
}
您的文件将保存在“存储/应用程序/公用文件夹”中。
如果您的文件未保存,请授予您的项目文件夹权限和允许权限。我已经尝试过了。它说,如果我使用$request->file,就会出现一个错误。所以我改为使用Request::file作为动态方式,只需按原样放置,就可以看到数据库columin不放置任何额外的内容。我已经完成了测试,它正在运行symfony\Component\Debug\Exception\FatalThrowableError调用未定义的方法illumb\Support\Facades\Request::file(),这就是我得到的错误。我想我们最好转到对话来讨论这个问题。请导入右侧库使用illumb\Http\Request代码>使用这个我也试过了。数据库值变为1。您使用的是$task->image=\Storage::disk('public')->put('image',Request::file('image')),因此它将返回1或0。这就是它在数据库中插入1的原因。请核对我的答案。谢谢。但我在上传的图片文件夹中看不到。那么,它是看不见还是在存储/图像文件中被隐藏?案例我还想在welcome.blade.php中显示它。您可以阅读Laravel文档,了解文件存储、读取、获取url以及所有工作方式。谢谢你的建议。我读过。但仍然停留在这一部分。因此,我将再尝试一次,看看运气如何。默认情况下,此值设置为storage/app目录。因此,它将在storage/app/文件夹中存储一个文件。您可以从文件系统配置文件(即config/filesystems.phpSorry)更改存储路径,因为我的错误,我没有注意到。您使用disck“public”,因此您的文件将保存在storage/app/public/folder中
composer require intervention/image