2016-05-27 4 views
1

リンク(たとえばhttp://arymangupta.hol.es/download/file) からファイルをダウンロードする固有のリンクを希望し、一定の間隔(15日または10日)後にリンクを変更する必要があります(たとえばhttp://arymangupta.hol.es/**AnyRandomString**/file)。一定時間間隔後にサーバーのパスを自動的に変更するにはどうすればよいですか?

+0

これまでに試したことを投稿してください。 –

+0

あなたはこれをやりたい理由についてさらに説明しなければならないでしょう。あなたが提供した2番目のリンク形式は途中で無効です。 – Chris

+0

私はちょうどhttp://(aything)/ fileのようにパスが異なるようにしたい。 –

答えて

1

私はあなたに完全なコードを教えてくれませんが、手順はかなり簡単です。まず、元のパスをデータベースに保存します。

その後
+----+-------------+----------------+---------------------+ 
| id | token  | path_to_file | date    | 
+----+-------------+----------------+---------------------+ 
| 1 | abcdefghijk | /path/file.pdf | 2016-05-27 00:00:00 | 
+----+-------------+----------------+---------------------+ 

  • は、トークンを指定したスクリプトが非表示にするには

ファイルをダウンロードする人々ができるようになります作成

  • 有効期限が切れているトークンをリフレッシュするためにcronジョブを作成します。あなたが使用できる実際のファイルパスreadfile() PHP関数。

    if (file_exists('/path/file.pdf')) { 
        header('Content-Description: File Transfer'); 
        header('Content-Type: application/pdf'); 
        header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
        header('Expires: 0'); 
        header('Cache-Control: must-revalidate'); 
        header('Pragma: public'); 
        header('Content-Length: ' . filesize($file)); 
        readfile($file); 
        exit; 
    } 
    
  • +0

    このプロセスは、ダウンロードするファイルの実際のパスを変更するか、そのちょうどルート@Napolux? –

    +0

    パスは同じままです。あなたはそれを変更する必要はなく、私はファイルを移動させないでください。ダウンロードリンクが正しく設定されていれば、ダウンロードリンクは変更され、期限切れになります。 – Napolux

    1

    まずデータベースのパスを保存し、次にデータベースから取得する必要があります。 2番目のことは、パスをランダムに変更したい場合は、必要なものをデータベースの更新パスとしてcronジョブを実行する必要があります。

    関連する問題