laravel使用input接收上传文件并获取文件信息

【laravel使用input接收上传文件并获取文件信息】引入相关的类

use Illuminate\Support\Facades\Input;

// 接收数据 $file = Input::file(file_data); //检验一下上传的文件是否有效. if($file->isValid()){ echo '文件已经上传'; } //获取上传文件的文件名 $clientName = $file->getClientOriginalName(); //获取缓存在tmp文件夹中的文件名 例如:php5730.tmp $tmpName = $file->getFileName(); //这个表示的是缓存在tmp文件夹下的文件的绝对路径 //例如我的是: C:\Windows\php7A.tmp //这里要注意,如果我使用接下来的move方法之后, getRealPath() 就找不到文件的路径了.因为文件已经被移走了. 所以这里道出了文件上传的原理,将文件上传的某个临时目录中,然后使用Php的函数将文件移动到指定的文件夹. $realPath = $file->getRealPath(); //上传文件的后缀,例如txt $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(); //最后我们是移动文件导指定的目录 //如果你这样写的话,默认是会放置在 我们 public/storage/uploads/php79DB.tmp $path = $file->move('storage/uploads'); //如果我们希望将其放置在app的storage目录下的uploads目录中,并且需要改名的话.. //这里app_path()就是app文件夹所在的路径. $path = $file->move(app_path().'/storage/uploads', $newName); //$newName可以是你通过某种算法获得的文件的名称 //主要是不能重复产生冲突即可 //比如 $newName = md5(date('ymdhis').$clientName).".".$extension; //利用日期和客户端文件名结合 //使用md5算法加密得到结果。 //记得在后面加上文件原始的拓展名

    推荐阅读