【问题标题】:Downloading uploaded file php下载上传的文件php
【发布时间】:2016-03-16 17:35:25
【问题描述】:

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

我完全按照这个link 作为示例,它确实会上传到 yii 中的上传文件夹,但现在我尝试在我看来使用此代码下载它:

$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));

但是当它下载时,它不会打开,因为不支持文件格式......知道我该怎么做

【问题讨论】:

  • 你试过设置mime_type(第三个参数:yiiframework.com/doc/api/1.1/CHttpRequest#sendFile-detail)吗?
  • 我没有,但这与文件类型有关吗?因为我在表格中有那个,我尝试下载我上传的 jpg 文件,但它不会打开,但是当我检查设置时它的 jpg。
  • 那么问题出在上传上。如果您无法打开上传的文件,则您的文件在上传过程中被弄乱了。能否提供上传代码?

标签: php file yii download upload


【解决方案1】:

我对您的代码做了一些修改。通过视图上的 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
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-25
    • 2012-06-18
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 2017-03-16
    • 2016-03-16
    • 1970-01-01
    相关资源
    最近更新 更多