MENU

Make a link to a file

  Previous article Next article  

User Defined Tag to create a link to open a file, followed by the file size.
This article originated from the former CMSMS Wiki and the original author is Ralph Kutschera
The UDT forces the download of the file now! [HTML5!]

Create a new User Defined Tag, named "file_link" and copy-paste the following code in it:

file_link
$url = isset($params['url']) ? $params['url'] : '';

// check if file exists
if(file_exists($url))
{
  $linkname = isset($params['name']) ? $params['name'] : $url;

  $filesize = filesize($url);
  // beautify filesize
  $suffix = "B";
  if($filesize > 1024)
    {
      $filesize = $filesize / 1024;
      $suffix = "KB";
      if($filesize > 1024)
      {
        $filesize = $filesize / 1024;
        $suffix = "MB";
        if($filesize > 1024)
        {
          $filesize = $filesize / 1024;
          $suffix = "GB";
        }
      }
    }

  $filesize = sprintf("%.2f", $filesize);

  // edit this line, if you want a different representation of your link
  echo '<a href="'.$url.'" download><b>'.$linkname.'</b> ('.$filesize.$suffix.')</a>';
}
else
{
  // this is shown if the file you try to link can't be found
  echo $linkname.' (Sorry, file not found)';
}

You can omit the tag attribute 'name' if you want the name of the file as the link text. The code also checks whether the file does exist and gives a '(Sorry, file not found)' otherwise.

  How to use

{file_link url='uploads/path/to/file.pdf' name='My filename'}

Or in a module template you can do something like:

{file_link url=$foo->url_to_file name=$foo->name_of_file}

  Working example

I use this UDT to download a .XML file in my blog FormBuilder template and stylesheet


Buy Me A Coffee


  Show related articles:


  Comment Form

ReviewManager





Note: your IP address will be stored on submit. I reserve the right to change or delete your response without notice! In case of abuse your IP address will be blocked!

GDPR privacy disclaimer
This form will send me your email address and your IP address.
If you don't want that, don't use this form!

ReviewManager

  0 Comments

No comments yet...

Buy Me A Coffee

CMS Made Simple - Tutorials, Tips and Tricks - CMSMS

Make a link to a file

  Article optimized for CMSMS 2.x

  Author:
  Last tested in: CMSMS 2.2.5
  Last updated: 23-06-2018
  Comments: 0
  http://cms.ms/aVKp


Buy Me A Coffee




Advertisement


Ads help me to help you! Thanks!

Ads help me to help you! Buy products from these advertisers!