[0] ThrowableError in Center.php line 1973
致命错误: Call to a member function move() on array
1 上传的这里使用的是一个对象,我这边接受到的是数组,正确方式使用手册中的方式。
1.public function upload(){
2. // 获取表单上传文件 例如上传了001.jpg
3. $file = request()->file('image');
4. // 移动到框架应用根目录/public/uploads/ 目录下
5. $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
6. if($info){
7. // 成功上传后 获取上传信息
8. // 输出 jpg
9. echo $info->getExtension();
10. // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
11. echo $info->getSaveName();
12. // 输出 42a79759f284b767dfcb2a0197904287.jpg
13. echo $info->getFilename(); 
14. }else{
15. // 上传失败获取错误信息
16. echo $file->getError();
17. }
18.}
===============================
以下是我的方法

public function uploadsum(){
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('shopimg');
// 移动到框架应用根目录/public/uploads/ 目录下
$path = './data/upload/'.date('Y-m-d').'/';
$info = $file->move($path);

if($info){
// 成功上传后 获取上传信息
// 输出 jpg
echo $info->getExtension(); 
// 输出 42a79759f284b767dfcb2a0197904287.jpg
echo $info->getFilename(); 
}else{
// 上传失败获取错误信息
echo $file->getError();

}

重点:
// $file = request()->file('shopimg');
这里的shopimg 是传递name名称,这里接收到的是下面的对象,而不是之前直接接收到的数组(数组是$_FILES方式接收到的)。因此报错。


object(think\File)#4 (13) { ["error":"think\File":private]=> string(0) "" ["filename":protected]=> string(22) "C:\Windows\phpF6FE.tmp" ["saveName":protected]=> NULL ["rule":protected]=> string(4) "date" ["validate":protected]=> array(0) { } ["isTest":protected]=> NULL ["info":protected]=> array(5) { ["name"]=> string(21) "20150410023741563.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(22) "C:\Windows\phpF6FE.tmp" ["error"]=> int(0) ["size"]=> int(16030) } ["hash":protected]=> array(0) { } ["pathName":"SplFileInfo":private]=> string(22) "C:\Windows\phpF6FE.tmp" ["fileName":"SplFileInfo":private]=> string(11) "phpF6FE.tmp" ["openMode":"SplFileobject":private]=> string(1) "r" ["delimiter":"SplFileobject":private]=> string(1) "," ["enclosure":"SplFileobject":private]=> string(1) """ }
 

01-15 19:04