gridview yii2中的操作下载
我对YII2很陌生。我想为之前上传的文件创建一个下载功能。我提到了如何在Yii2中的Gridview中创建动作下载。但是,当我点击按钮下载时,它会加载空白页面。这是代码 在gridviewgridview yii2中的操作下载,yii2,yii2-advanced-app,yii2-user,Yii2,Yii2 Advanced App,Yii2 User,我对YII2很陌生。我想为之前上传的文件创建一个下载功能。我提到了如何在Yii2中的Gridview中创建动作下载。但是,当我点击按钮下载时,它会加载空白页面。这是代码 在gridview <?=GridView::widget([ 'dataProvider'=>$dataProvider, 'id'=>'mygrid', 'columns' => [ ['class' => 'yii\grid\Se
<?=GridView::widget([
'dataProvider'=>$dataProvider,
'id'=>'mygrid',
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'project_name',
'project_file',
'created_date',
[
'class' => 'yii\grid\ActionColumn',
],
['attribute'=>'Download',
'format'=>'raw',
'value' => function($data)
{
return
Html::a('Download file', ['firstyear/download', 'id' => $data->id],['class' => 'btn btn-primary']);
}
],
]
在actionCreate(上传文件)
谢谢。我怀疑$path不正确,在创建操作中,您已经在$model->project\u文件中包含了uploads文件夹 但你在actionDownlaod中再次使用它 您应该尝试删除actionDownlaod中的
uploads
文件夹,并添加一些调试消息
public function actionDownload($id)
{
.....
$path=Yii::getAlias('@webroot').'/'.$download->project_file;
if (file_exists($path)) {
return Yii::$app->response->sendFile($path);
} else {
throw new NotFoundHttpException("can't find {$download->project_file} file");
}
}
我怀疑$path不正确,在创建操作中,您已经在$model->project\u文件中包含了uploads文件夹 但你在actionDownlaod中再次使用它 您应该尝试删除actionDownlaod中的
uploads
文件夹,并添加一些调试消息
public function actionDownload($id)
{
.....
$path=Yii::getAlias('@webroot').'/'.$download->project_file;
if (file_exists($path)) {
return Yii::$app->response->sendFile($path);
} else {
throw new NotFoundHttpException("can't find {$download->project_file} file");
}
}
谢谢你,大卫。。非常感谢……太好了!它起作用了@大卫汉克斯大卫。。非常感谢……太好了!它起作用了@大卫
public function actionCreate()
{
$model = new Firstyear();
if ($model->load(Yii::$app->request->post()))
{
.......
$model->project_file='uploads/'.$project.'.'.$model->file->extension;
$model->save();
....
}
}
public function actionDownload($id)
{
.....
$path=Yii::getAlias('@webroot').'/uploads/'.$download->project_file;
if (file_exists($path)) {
return Yii::$app->response->sendFile($path);
}
}
public function actionDownload($id)
{
.....
$path=Yii::getAlias('@webroot').'/'.$download->project_file;
if (file_exists($path)) {
return Yii::$app->response->sendFile($path);
} else {
throw new NotFoundHttpException("can't find {$download->project_file} file");
}
}