Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
下载上传的php文件_Php_File_Yii_Download_Upload - Fatal编程技术网

下载上传的php文件

下载上传的php文件,php,file,yii,download,upload,Php,File,Yii,Download,Upload,我是yii框架的新手,我们学校有一个关于上传和下载文件的项目,我需要一些帮助 我将此作为一个示例,完全按照原样操作,它确实会上传到yii中的uploads文件夹,但现在我尝试使用我视图中的以下代码下载它: $id= $_GET['id']; $media = Document::model()->findByPk($id); $path = Yii::app()->basePath . '/../uploads'; $name = $media->doc

我是yii框架的新手,我们学校有一个关于上传和下载文件的项目,我需要一些帮助

我将此作为一个示例,完全按照原样操作,它确实会上传到yii中的uploads文件夹,但现在我尝试使用我视图中的以下代码下载它:

$id= $_GET['id'];
    $media = Document::model()->findByPk($id);
    $path = Yii::app()->basePath . '/../uploads';
    $name = $media->doc_file;

    Yii::app()->request->sendFile($name, file_get_contents($path."/".$name));

但当它下载时,它不会打开,因为文件格式不受支持。。。你知道我该怎么做吗?

我对你的代码做了一些修改。通过视图上的url传递id,这将触发控制器中的下载操作。你应该很乐意接受这个

public function actionDownload($id)
{
    $media = Document::model()->findByPk($id);
    $path = Yii::app()->request->baseURL . '/uploads';

    $file = $path . '/'.$media->doc_file;

    if (file_exists($file)) {    
     return Yii::app()->getRequest()->sendFile($name, @file_get_contents($path));
    }else{
        //throw an error here
    }

}

您是否尝试过设置
mime\u类型(第三个参数:)?我没有,但这是关于文件类型的吗?因为我把它放在表格里,我试着下载我上传的一个jpg文件,但它不会打开,但当我检查设置时,它的jpg。然后问题是上传。如果您无法打开上载的文件,则在上载过程中会将文件弄乱。你能提供上传代码吗?