介绍
怎么在laravel框架中使用对象存储OSS ?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
1,引入阿里的SDK文件
如图所示,其实我也不知道该放哪里合适,不过laravel的好处是命名空间比较好使,所以我直接把SDK重命名为OSS,然后目录路径为:App \助手\ OSS
2,就是修改命名空间,主要是你能用得上的文件,大概有7 - 8个,把命名空间都定义好
3,修改配置文件,配置。php,这个是SDK中的配置文件,需要把相应的配置写清楚
(坑:端点这个部分,前面一定不要加你的桶,不然就重复了,例如,我的端点是
& # 39; oss-cn-shanghai.aliyuncs.com& # 39; )
4,都配置的差不多了,接下来就是上传文件了
public static function uploadOne(文件名) { ,file 美元;=,\外墙\ \照亮\支持请求:文件(文件名美元); ,if (! $文件),{ ,退出(“请上传图片“); ,} ,//文件是否上传成功 美元,if (文件→isValid ()), { ,//获取文件相关信息 美元,美元originalName =,文件→getClientOriginalName();,//,文件原名 美元,美元ext =,文件→getClientOriginalExtension();,//,扩展名 美元,美元realPath =,文件→getRealPath();,//临时文件的绝对路径 美元,美元type =,文件→getClientMimeType ();,//,/jpeg图像 ,content 美元;=,日期(& # 39;Y-m-d-H-i-s& # 39;),只& # 39;& # 39;,只函数(),只& # 39;强生# 39;,只ext美元; ,require_once (base_path(),只& # 39;/app/帮助/Oss/autoload.php& # 39;); ,bucket 美元;=,配置:OSS_TEST_BUCKET; ,accessKeyId 美元;=,配置:OSS_ACCESS_ID; ,accessKeySecret 美元;=,配置:OSS_ACCESS_KEY; ,endpoint 美元;=,配置:OSS_ENDPOINT; ,ossClient 美元;=,常见:getOssClient (); ,/* var_dump ($ ossClient); 退出;*/,object 美元;=,“用户/?只美元内容; 美元,美元filePath =,文件; ,result 美元;=,ossClient→美元还是($ bucket,对象,美元,美元filePath); (! $,if 结果),{ 退出才能(“上传图片失败“); ,} 美元,return 内容; ,} }
上代码,主要从require_once开始的,引入SDK的加载文件,然后把各项配置通过配置引入进来。
$对象是你要存储的文件。比如楼主这里,就是相当于存储在斗下的用户文件下。然后通过
filePath=美元文件来获得图片的内容,使用还是方法进行上传。然后看返回值,成功即可。
5,遇到的坑:首先是SDK中的自动装载。php一直报错,
function 类加载器(类) { ,path 美元;=,str_replace (& # 39; \ \ & # 39;,, DIRECTORY_SEPARATOR,,美元类); ,file 美元;=,__DIR__ 只DIRECTORY_SEPARATOR 强生# 39;src # 39;只DIRECTORY_SEPARATOR 只path 美元;只& # 39;。php # 39;; ,if (file_exists(文件)美元),{ ,require_once $文件; ,} }/* spl_autoload_register(& # 39;类加载器# 39;);*/
像这样的,我就直接注释了,也没什么后果,不过在后面可能会用得上吧,需要继续研究
其次就是上传的时候遇到的小问题了,这个根据错误提示修改即可,一般来说按我的走,能实现基本的上传图片,如果是上传文件的话,直接修改上传方法:美元ossClient→putobj()就可以了
关于怎么在laravel框架中使用对象存储OSS问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。