$image = $request->file('image');
$path = getenv("OSS_PREFIX").'/cfs-app/images/'.date("Ymd");
$result = Storage::adapter('public')->path($path)->upload($image);
var_dump($result);
var_dump("--------------------------------1");
//$result->file_name dev/cfs-app/images/20220922/ec8aca9ed183f56e2c1bb26224105d6e.jpg 本地有这个图片且可以访问
$result = Storage::adapter('oss')->path($path)->upload($result->file_name);
var_dump($result);
var_dump("--------------------------------2");
Call to a member function getSize() on string
想不明白了 ~~~ 切换到oss的时候不行了
第一次
这里的$image是个资源UploadFile[]|UploadFile
第二次的
是个string
如果把 $result->file_name 换成 $image 这个的话会抛出异常 fclose(): supplied resource is not a valid stream resource
我给你去看了下那个插件,确实是要传$image对象的,报错应该是在upload方法的132行,你要在128行左右打印那个 $stream 看看
应该是在 $filesystem->writeStream(
$fileName,
$stream
); 后面打印,应该这里应该是往里面写入东西
刚试了一波 没打印出来 我感觉已经超出我的能力范畴了 ,我可能要换个包了 哎~难过。
没打印出来值就是那里的问题,猜测可能是因为没有权限造成的fopen失败,
如果是权限问题是你服务器目录权限没配好,跟代码没关系的
谢谢老哥 耐心解答 ,我public目录权限给到777了
别这样搞,public 不能给777权限的。估计是你用root用户运行的webman,如果是的话,改成用www用户来运行
我测试环境 我运行webman的用户不是root
你在 127行
$stream = \fopen($file->getRealPath(), 'r+');
后面打印 $stream 看看,估计就是目录权限问题造成的打开文件失败
图片存放路径给了777了 结果还是那个问题 而且同一张图片上传会报另一个异常 ,也不知道其他兄弟咋用的额
这后面打印的 $stream 是不是false,要先定位好问题,顺便把 $file->getRealPath() 这个路径也打印出来。你贴图出来我看吧,不然不太信息你看的信息
老哥 截图v1.0
除了123 终端没有显示数来任何 $stream 信息
你这个image的resource在你用
的时候应该已经是清理掉了,因为是个临时文件
你把这段代码去掉应该就可以跑OSS那一段了
比如改成
对,他前面调用了一次生成本地文件了,我没注意到,无语......
不行啊 截图v2.1
异常还是有 但是$stream 打印 resource(373) of type (Unknown)
再次提交就会包 截图v2.1第三张
你这报错说明已经调用了Oss的接口了,现在是OSS返回的错误
OSS上有重名文件,将OSS上的文件,先删掉,再重新执行即可。或者先用下面的路径测试
我现在也遇见这个问题, 不能直接从服务端上传到 oss cos之类的, 有点无语
PHP 7.4
base64Upload($files); 方法
传了个寂寞呀
别折腾了,这个插件代码质量真不敢恭维。