yii2 在grid表里给字段加 下载附件链接,加其他动作同理

来源:互联网 发布:淘宝折扣app 编辑:程序博客网 时间:2024/05/14 00:46

在之前的文章里已经介绍了如何上传文件,请参考yii2 上传文件

首先:view 文件

[        'attribute' => 'purchaseFile',        'hAlign' => 'center',        'vAlign'=>'middle',       //以下是加链接动作,及其样式(其他动作同理)        'format' => 'raw',        'value'=> function($model){            return Html::a($model->purchaseFile, ['download','id'=>$model->purchaseID], [                'title' => '下载附件',                'data' => [                    'method' => 'post',//一定要注明post方式!!                        ]                ]);        }    ]

其次:在控制器里写方法

 //下载附件    public function actionDownload($id)    {        $model = $this->findModel($id);        if($model->purchaseFile){           $all = Purchase::find()->where(['purchaseID'=>$id])->asArray()->one();           $fileName = $all['fileName'];           if (file_exists('../uploads/purchaseFile/' . $fileName)) {            return Yii::$app->response->sendFile('../uploads/purchaseFile/' . $fileName)->send();//查找路径并下载           } else {                return "<h1>文件不存在</h1>";            }        }else{            Yii::$app->session->setFlash('error', '不存在采购附件');            return $this->redirect(['index', 'id' => $model->purchaseID]);        }        }


原创粉丝点击