Laravel 4-更改(上传图片名)

用户名

我想使用随机名称重命名图像。我必须使用一些逻辑加密吗?

我的Controller postAdd中具有该功能,可以上传图像并保存一些信息:

    public function postAdd()
    {
     $path = 'uploads/noticias';
     $file = Input::file('archivo'); 
     $archivo=$file->getClientOriginalName();
     $extension =$file->getClientOriginalExtension(); 
     $tamano=$file->getSize();
     $upload = $file->move($path, $archivo);
     if($upload)
     {
         $inputs=Input::All();
         $n= new Noticias;
        $n->titulo = $inputs["titulo"];
        $n->contenido=$inputs["contenido"];
        $n->seo_slug=$inputs["titulo"];
        $n->fecha=date("Y-m-d");
        $n->foto=$archivo;
        $n->save();
        return Redirect::to('add');
     }else
     {
        return Redirect::to('add');
     }
    }

我该怎么做?

安德烈科

文件名也应包含扩展名。
要创建文件名,请生成随机字符串并从上传的文件中添加扩展名。最好减小字符的大小写(或执行upprecase,但保持不变)。在我为您发布的示例中,我使用valuefunction,该函数返回传入的内容的结果-在这种情况下,我传递匿名函数,该函数生成文件名。

public function postAdd()
{
    $path = 'uploads/noticias';
    $file = Input::file('archivo'); 
    $archivo = value(function() use ($file){
        $filename = str_random(10) . '.' . $file->getClientOriginalExtension();
        return strtolower($filename);
    });
    $tamano = $file->getSize();
    $upload = $file->move($path, $archivo);
    if($upload) {
        $inputs=Input::All();
        $n= new Noticias;
        $n->titulo = $inputs["titulo"];
        $n->contenido=$inputs["contenido"];
        $n->seo_slug=$inputs["titulo"];
        $n->fecha=date("Y-m-d");
        $n->foto=$archivo;
        $n->save();
        return Redirect::to('add');
    } else {
        return Redirect::to('add');
    }
}




编辑

注释中要求的解释...

函数:
显然,它不是本机PHP函数。它是Laravel的辅助功能之一-此处的信息
这是它的来源。如果传递了闭包,则它执行闭包(匿名函数),或者仅返回传递的值(值)。

 /**
 * Return the default value of the given value.
 *
 * @param  mixed  $value
 * @return mixed
 */
function value($value)
{
 return $value instanceof Closure ? $value() : $value;
}

我选择使用它来使代码更具可读性。$filename闭包内部使用的变量被修改并返回-闭包外部不需要任何内容​​。
另外,您可以$filenamepostAdd函数范围内使用变量,并且它们不能混合使用,不可能偶然地覆盖其值,依此类推...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

随机图片名称图片上传MVC 4

来自分类Dev

PHP图片上传:更改图片名称

来自分类Dev

PHP上传图片名称

来自分类Dev

Laravel 4上传1张图片并另存为多张图片(3)

来自分类Dev

Laravel 4上传1张图片并另存为多张图片(3)

来自分类Dev

上传图片时获取图片名称

来自分类Dev

上传图片时获取图片名称

来自分类Dev

Laravel AJAX图片上传

来自分类Dev

图片上传表格laravel

来自分类Dev

Laravel:上传图片

来自分类Dev

Laravel 5.8 上传图片

来自分类Dev

Laravel 4-文件上传

来自分类Dev

Laravel 4-文件上传

来自分类Dev

RuntimeException SplFileInfo :: getSize():统计信息因... Laravel 4上传图片而失败

来自分类Dev

上传图片并访问laravel 5

来自分类Dev

使用Laravel 6上传图片

来自分类Dev

上传图片并访问laravel 5

来自分类Dev

Laravel - 解析上传的图片路径

来自分类Dev

图片未在Laravel 4 Framework中显示

来自分类Dev

图片未在Laravel 4 Framework中显示

来自分类Dev

处理Laravel 4上传大文件异常

来自分类Dev

如何使用Laravel 4上传视频?

来自分类Dev

处理Laravel 4上传大文件异常

来自分类Dev

Laravel 4-上传文件和SQL

来自分类Dev

用迁移更改表laravel 4

来自分类Dev

Laravel 4-CSRF令牌永不更改

来自分类Dev

在Laravel 4中更改默认环境

来自分类Dev

在Laravel 4中更改.htaccess文件

来自分类Dev

在Laravel 4中更改.htaccess文件