1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Yii2.0整合阿里云oss如何删除单个文件的实例详解

Yii2.0整合阿里云oss如何删除单个文件的实例详解

时间:2023-02-07 05:25:17

相关推荐

Yii2.0整合阿里云oss如何删除单个文件的实例详解

后端开发|php教程

Yii2.0,删除,如何

后端开发-php教程

这篇文章主要介绍了yii2.0整合阿里云oss删除单个文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

网游源码网店,vscode键盘无法输入,ubuntu su 命令,tomcat32卸载,sqlite数据库适用于,有长长的腿有翅膀是黑色会爬虫子,php带参数跳转,seo营销怎么运营推广,同城交友网站模板,微信公众号模板素材下载lzw

主要思路,在controller里边通过获得要删除的文件fileid,把fileid传递给model的deletefile方法进行处理,并返回处理结果。

在deletefile方法里边,先根据id找到对应的文件信息,然后删除数据里边的记录和阿里云oss里边的文件和本地的文件。

源码焦点,ubuntu文件 进程占用,tomcat7日志位置,爬虫人士的特征,PHP面膜多少钱一盒,上海seo篇章lzw

主要步骤如下:

网页源码,ubuntu浙江大学,tomcat一直无法启动,js 爬虫啥意思,php转大数据分析,沛县网站seolzw

1 首先是构建一个view视图,或者写一个ajax发送请求,此处代码略(让前端去写吧)。

2 在控制器里边接收参数,并转交给model。控制器UploadController.php里边的代码参考如下:

/** * 根据fileid删除文件 * @return mixed 删除是否成功 */ public function actionDeletefile() { $res[error] = 1;// 准备返回数据 Yii::$app->response->format = Response::FORMAT_JSON; // 设置返回格式 if (Yii::$app->request->isPost){ // 如果是post请求$postdata = Yii::$app->request->post(fileid,0); // 从post里边获取文件idif ($postdata==0){ // 如果文件id为0 $res[errmsg] = 删除失败,请重试; // 准备返回数据 return $res; // 返回结果}$model = new UploadForm(); // 实例化model$delres = $model->deletefile($postdata);// 根据id调用deletefile方法if ($delres[error]==0){ // 如果删除成功 $res[error] = 0;// 准备返回信息} else { $res[errmsg] = $delres[errmsg]; // 如果删除失败,准备返回信息} } else {$res[errmsg] = 非法请求; // 主要考虑post请求,get请求请自行修改代码 } return $res;// 返回删除结果 }

3 当controller把文件id转移给UploadForm.php以后,在deletefile方法里边进行删除。

/** * 删除阿里云oss里存储的文件和数据库里边保存到文件上传信息 * @param $fileid 文件表里边的主键id * @return boolean 删除是否成功 */ public function deletefile($fileid) { $res[error] = 1; // 1表示默认有错误。 $fileinfo = Yii::$app->db->createCommand(select ossfile,filePath,userid from file where id=:id)->bindParam(:id, $fileid)->queryOne(); // 根据主键从数据库里边查询文件的信息,至少要一个服务器文件的完整路径(用来删除服务器文件)和一个ossfile的名称(删除阿里云oss里边的文件) if (count($fileinfo) > 0) { // 如果找到了文件的记录// 这里边的验证可以更丰富一些,比如验证用户是否有权限删除该文件,文件是否属于该用户等等$ossfile = $fileinfo[ossfile];// 获取ossfile$realfile = $fileinfo[filePath];// 获取服务器上的文件$owner = $fileinfo[userid]; // 获取上传图片用户的id$operator = Yii::$app->user->id;// 获取删除图片的用户if ($owner != $operator) { // 如果删除图片的用户不是上传的用户,报错并返回 $res[errmsg] = 您删除的图片不存在; return $res;}$trans = Yii::$app->db->beginTransaction(); // 开启事务try { $delstatus = Yii::$app->db->createCommand()->delete(file, id = . $fileid)->execute(); //删除数据库里边的记录 if ($delstatus) { // 如果删除成功if (Yii::$app->Aliyunoss->delete($ossfile)) { //删除阿里云oss上的文件 @unlink($realfile); // 删除服务器上的文件 $res[error] = 0; // 准备返回信息 $trans->commit(); // 提交事务} } $trans->rollBack(); // 删除失败,事务回滚} catch (Exception $e) {// 发生异常 $res[errmsg] = 删除失败; // 准备返回信息 $trans->rollBack(); // 事务回滚} } else {$res[errmsg] = 图片不存在,请重试;// 图片不存在 } return $res; // 返回删除结果 }

阿里云oss文件的上传和删除已经写完了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。