注册 登录
  • 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!

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

PHP 开心洋葱 7797次浏览 已收录 0个评论 手机上查看

$file = Input::file(‘myfile’);

if($file -> isValid()){ //检验一下上传的文件是否有效.

$clientName = $file -> getClientOriginalName();

$tmpName = $file ->getFileName(); // 缓存在tmp文件夹中的文件名 例如 php8933.tmp 这种类型的.

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

$entension = $file -> getClientOriginalExtension(); //上传文件的后缀.

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

最后我们使用 $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 算法加密得到结果.不要忘记在后面加上文件原始的拓展名. 好吧.开始本来想写程序的,现在搞成这幅德行了.


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明laravel接收上传文件获取各种文件名和信息
喜欢 (7)
[开心洋葱]
分享 (0)
关于作者:
开心洋葱,开心洋葱头,水墨

您必须 登录 才能发表评论!

加载中……