gpt4 book ai didi

php - 续: Url convert to string and save problem

转载 作者:行者123 更新时间:2023-11-29 15:11:59 25 4
gpt4 key购买 nike

这是我之前的帖子:Laravel inserting normal image, value become null

感谢大家在上一篇文章中给我的建议。现在我有另一个问题。我想寻求帮助并教我解决这个问题。

我目前想将图像路径保存在我的数据库中。正如之前的帖子所提到的。我的数据库现在正在保存值 1 而不是路径。这是我的函数上传代码。

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');

}

我已阅读 Laravel 页面。但不太确定我该如何解决这个问题。

最佳答案

如果文件是否保存,下面将返回 1 或 0。这就是为什么它将 1 插入到您的数据库中:

\Storage::disk('public')->put('image', Request::file('image'))

成功保存后,要获取文件网址,您可以使用以下代码:

$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);
}
}

如果您遇到类似“找不到类图像”的错误,请执行以下操作:

composer require intervention/image

您的文件将保存在“storage/app/public 文件夹”中。如果您的文件未保存,请授予您的项目文件夹权限。

关于php - 续: Url convert to string and save problem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59999108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com