-
Notifications
You must be signed in to change notification settings - Fork 80
wen_jian_shang_chuan
janhuang edited this page May 7, 2016
·
14 revisions
框架中已经封装一个简单的文件上传对象,并且文件上传可以自由扩展,所以在操作上觉得不满足当前业务,可以自行对其进行扩展。
文件上传对象依赖 FastD\Http\Request 对象,因此在使用文件上传的时候,应该将对象注入到控制器、Services当中,在获取到对象之后,直接执行上传操作即可。
public function uploadAction(Request $request)
{
$uploader = $request->getUploader();
$files = [];
if ($uploader->uploadTo($this->get('kernel')->getRootPath() . '/storage/files')) {
$files = $uploader->getUploadedFiles();
}
return $this->render('system/files.twig', [
'files' => $files
]);
}文件上传成功后,通过 getUploadedFile 获取所有成功上传的文件,文件在上传的时候会生成一个唯一 hash,也就是说,如果已经上传过的文件,不会再重新上传多一张。
文件返回一个文件对象,文件对象包含基础的属性获取,通过 get* 获取属性即可。
文件上传扩展相对简单,实现 FastD\Http\File\Upload\ UploadInterface 接口即可,实现对应方法。在获取 getUploader 的时候,注入实现扩展的对象即可。