Laravel Image上传插入临时位置和文件名而不是正确的名称

时间:2014-02-09 04:12:39

标签: php mysql image-processing laravel laravel-4

我正在尝试使用Laravel将图像上传到我的数据库,这是我第一次尝试这样做,但我想正确地做到这一点。该文件正确上传到专用文件夹,但当它将其插入数据库时​​,它使用临时名称而不是用户设置的文件名和扩展名。例如,我想上传一个名为puppy.jpg的文件,但是它将/tmp/phplS7ToN

插入到数据库字段中

模型

 public function insertPost($input)
{
    $validation = new Services\Validators\Post;

    if ($validation->passes())
    {

        return $post = Post::create($input);

        $image = Input::file('main_image');
        $filename = $image->getClientOriginalName();
        $filename = pathinfo($filename, PATHINFO_FILENAME);
        $upload = $image->move(Config::get('image.upload_folder'), $filename);

        Image::make(Config::get('image.upload_folder') . '/' . $filename)
            ->resize(Config::get('image.thumb_width'), null, true)
            ->save(Config::get('image.thumb_folder') . '/' . $filename);

        $post->main_image = $filename;
        $post->save();          
    }

1 个答案:

答案 0 :(得分:2)

您正在使用此

$filename = $image->getClientOriginalName();
$filename = pathinfo($filename, PATHINFO_FILENAME);

您只能使用此

$filename = $image->getClientOriginalName();

这将返回您想要的文件名。无需使用pathinfo