2016-02-19 18 views
1

現在,如果我從我的基本Yii2應用程序(託管在網絡服務器上)註銷,並且我知道上傳文件的直接url,我可以訪問並查看它也登出。我的上傳目錄在app/web之下。我的webroot是app/web。有沒有辦法限制只有登錄用戶?我猜它必須用apache做更多,或者?謝謝!Apache訪問上傳的文件只有登錄Yii2

+0

[這裏就是我一直在尋找(用戶http://stackoverflow.com/questions/2679524/block-direct-access-to-a-file- over-http-but-allow-php-script-access),對不起,我還沒有找到它。 – user2511599

+0

靜態文件(圖片)無法訪問應用程序,現在也... – user2511599

回答

0

是的,yii不限制對文件的訪問。您必須將文件保存在web/以下。我沒有試過我自己,但我發現這個功能,可以幫助您

http://www.yiiframework.com/doc-2.0/yii-web-response.html#sendFile()-detail

public $this sendFile ($filePath, $attachmentName = null, $options = []) 

編輯根據您的評論: 如果您的下載文件夾是網絡,如frontend/downloads它不應該通過瀏覽器訪問。但你可以在文件然後發送到使用

public function actionTest() 
{ 
    Yii::$app->response->sendFile(Yii::getAlias('@frontend').'/download/yourfile.zip'); 
} 
+0

上傳文件夾已經在'/ web /'下。我不明白你的意思是什麼,這個功能可以提供幫助。 – user2511599

+0

然後,無論是我誤解了你的問題,還是你沒有閱讀過這個功能。在我的答案中作爲編輯提供了一個示例。這不是你問的嗎? –

+0

問題是,文件目前(基本應用程序)**總是**可訪問。我不想那樣。 – user2511599