/**
* 根据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里边获取文件id
if ($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; // 返回删除结果
}
/**
* 删除阿里云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; // 返回删除结果
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有