PHP-Laravel上传文件
2018-03-08 11:55
225 查看
Files
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action="/upload" method="post" enctype="multipart/form-data"> <p> {{csrf_field()}} PHOTO: <input type="file" name="img" id=""> </p> <p> <input type="submit" value="提交"> </p> </form> </body> </html>
获取上传文件
你可以使用Illuminate\Http\Request实例中的
file方法获取上传的文件。
file方法返回的对象是
Symfony\Component\HttpFoundation\File\UploadedFile类的实例,该类继承了
PHP的
SplFileInfo类,并提供了许多和文件交互的方法:
$file = $request->file('photo'); $file = $request->photo;
你可以使用请求的
hasFile方法确认上传的文件是否存在:
if ($request->hasFile('photo')) { // }
确认上传的文件是否有效
除了检查上传的文件是否存在外,你也可以通过isValid方法验证上传的文件是否有效:
if ($request->file('photo')->isValid()) { // }
文件路径&拓展
UploadedFile这个类也包含了访问文件完整路径和扩展的方法。
extension方法会尝试根据文件内容猜测文件的扩展名。猜测结果可能不同于客户端原始的扩展名:
$path = $request->photo->path(); $extension = $request->photo->extension();
其他上传的方法
UploadedFile的实例还有许多可用的方法,可以到 该对象的 API 文档 了解这些方法的详细信息。
储存上传文件
在设置好 文件系统 的配置信息后,你可以使用UploadedFile的
store方法把上传文件储存到本地磁盘,或者是亚马逊 S3 云存储上。
store方法允许存储文件到相对于文件系统根目录配置的路径。这个路径不能包含文件名,名称将使用 MD5 散列文件内容自动生成。
store方法还接受一个可选的第二个参数,用于文件存储到磁盘的名称。这个方法会返回文件相对于磁盘根目录的路径:
$path = $request->photo->store('images'); $path = $request->photo->store('images', 's3');
如果你不想自动生成文件名,那么可以使用
storeAs方法去设置路径,文件名和磁盘名作为方法参数:
$path = $request->photo->storeAs('images', 'filename.jpg'); $path = $request->photo->storeAs('images', 'filename.jpg', 's3');
上传本地的例子
// 文件上传处理 public function upload(Request $request){ // 判断文件是否上传 if ($request->hasFile('img')) { // 获取后缀名 $ext=$request->file('img')->getClientOriginalExtension(); // 新的文件名 $newFile=time().rand().".".$ext; // 上传文件操作 $request->file('img')->move('./Uploads',$newFile); }else{ // 回到上一个页面 return back(); } }
相关文章推荐
- php laravel 帧 该文件上传
- PHP Laravel 上传图片、文件等类封装
- php laravel 框架 之文件上传
- PHP:大文件上传错误原因
- php 文件上传 以及保存在本地的乱码问题处理
- php文件上传
- php上传文件的增强函数
- php接收上传文件
- PHP上传大文件 分割文件上传
- php上传文件分类实例代码
- 用PHP Session和Javascript实现文件上传进度条
- PHP一步步实现文件上传
- PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
- PHP检索字符串(strstr)文件上传查找指定(.jpg)文件
- PHP特点之文件上传4——多文件上传
- 使用php技术实现无刷新的上传文件
- PHP多文件上传问题汇总
- [代码] - Zend Framework 上传文件重命名,Php程序。
- PHP简易文件上传系统 For 阿里云存储 v1.3
- php实例多文件上传实例代码