gpt4 book ai didi

php - Laravel 4 - 文件上传

转载 作者:IT王子 更新时间:2023-10-28 23:49:50 25 4
gpt4 key购买 nike

我有一个表单,除了其他信息外,用户还可以上传图片。我想将图像的路径存储在数据库中,并将图像保存到服务器上的 public/img/ 文件夹中。

使用以下方法打开表单:{{ Form::open(['route'=>'pizzas.store', 'files'=>true]) }}这样能够发布文件。检查 HTML 我有以下内容:

<form method="POST" action="http://mypizza/pizzas" 
accept-charset="UTF-8" enctype="multipart/form-data">

我可以 POST 到我的 Controller 并按预期接收来自表单的所有数据。处理文件的方法如下:

public function store() {
//TODO - Validation

$destinationPath = '';
$filename = '';

if (Input::hasFile('image')) {
$file = Input::file('image');
$destinationPath = '/img/';
$filename = str_random(6) . '_' . $file->getClientOriginalName();
$uploadSuccess = $file->move($destinationPath, $filename);
}


$pizza = Pizza::create(['name' => Input::get('name'),
'price' => Input::get('price'),
'ingredients' => Input::get('ingredients'),
'active' => Input::get('active'),
'path' => $destinationPath . $filename]);

if ($pizza) {
return Redirect::route('pizzas.show', $pizza->id);
}

//TODO - else
}

当我选择一个文件并提交表单时,一切似乎都正常,只是没有文件保存在 /img 文件夹中。数据库正确注册文件路径和名称。

if { ...} block 之后运行 dd($uploadSuccess);,我得到以下信息:

object(Symfony\Component\HttpFoundation\File\File)#220 (2) {
["pathName":"SplFileInfo":private]=> string(17) "/img\YZmLw7_2.jpg"
["fileName":"SplFileInfo":private]=> string(12) "YZmLw7_2.jpg" }

我做错了什么?

最佳答案

您的 $destination_path 是错误的。您必须像这样在变量 $destination 中包含/public 目录的路径:

$destinationPath = public_path().'/img/';

关于php - Laravel 4 - 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19060459/

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