laravel接收上传文件获取各种文件名和信息

本文详细介绍了在 Laravel 框架中如何接收并处理上传的文件,包括如何获取文件的各种名称和信息,如原始名、保存名、扩展名等。通过实例代码,展示了如何在 Laravel 中优雅地处理文件上传操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

$file = Input::file(‘myfile’); 
    
    //检验一下上传的文件是否有效.
    if(if($file -> isValid())){        
        
        //原上传文件名称
        $clientName = $file -> getClientOriginalName(); 

        //文件大小
        $file_size = $file -> getClientSize();
        
        // 缓存在tmp文件夹中的文件名 例如 php8933.tmp 这种类型的. 
        $tmpName = $file ->getFileName(); 
        
        /**
         *这个表示的是缓存在tmp文件夹下的文件的绝对路径 
         *例如我的是: G:\xampp\tmp\php5A69.tmp 
         *这里要注意,如果我使用接下来的move方法之后, getRealPath() 就找不到文件的路径了.因为文件已经被移走了.
         *所以这里道出了文件上传的原理,将文件上传的某个临时目录中,然后使用Php的函数将文件移动到指定的文件夹. 
        **/
        $realPath = $file -> getRealPath(); 
        

        // 上传文件的后缀. 
        $entension = $file -> getClientOriginalExtension(); 
        
        /*大家对mimeType应该不陌生了. 我得到的结果是 image/jpeg. 
         *这里要注意一点,以前我们使用 mime_content_type() ,
         *在php5.3 之后,开始使用 fileinfo 来获取文件的mime类型.
         *所以要加入 php_fileinfo的php拓展.windows下是 php_fileinfo.dll
         *在php.ini文件中将 extension=php_fileinfo.dll前面的分号去掉即可.
         *当然要重启服务器.
        **/
        $mimeTye = file -> getMimeType();    


        /*最后我们使用 $path = $file -> move(‘storage/uploads’); 如果你这样写的话,
         *默认是会放置在 我们 public/storage/uploads/php79DB.tmp 貌似不是我们希望的,
         *如果我们希望将其放置在app的storage目录下的uploads目录中,并且需要改名的话..
         *$path = $file -> move(app_path().’/storage/uploads’,$newName);
         *这里app_path()就是app文件夹所在的路径. 
         *$newName 可以是你通过某种算法获得的文件的名称.主要是不能重复产生冲突即可. 
         *比如 $newName = md5(date(‘ymdhis’).$clientName).".".$extension; 
         *利用日期和客户端文件名结合 使用md5 算法加密得到结果.不要忘记在后面加上文件原始的拓展名.*/

         $path = $file -> move(app_path().'/storage/uploads',$newName); 
      
        
        
        
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值