You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PDF、GIF、JPG等各类附件以可下载链接形式展示

Got it, let's adjust your code to support all the file types you want (PDF, GIF, JPG, etc.) and turn every file into a clickable download link. Here's what we'll change:

  • Expand the list of allowed file extensions to include PDFs, GIFs, and any others you need
  • Replace the image-only display with links: for image files, we'll show a thumbnail preview that you can click to download; for non-image files like PDFs, we'll show the filename as a clickable link
  • Add the download attribute to ensure clicking the link triggers a download instead of opening the file in the browser

Here's the modified code with comments explaining each change:

<?php
// Define your directory (using the full relative path is more reliable)
$filesDirectory = "images/"; 

// Check if the directory exists
if (is_dir($filesDirectory)) {
    $openDirectory = opendir($filesDirectory);

    // List of allowed file types - add/remove as needed
    $allowedFileTypes = ['jpg', 'png', 'gif', 'pdf', 'docx', 'txt'];

    // Loop through each file in the directory
    while (($file = readdir($openDirectory)) !== false) {
        // Skip the default . and .. directory entries
        if(($file == '.') || ($file == '..')) {
            continue;
        }

        // Get the file extension (convert to lowercase for case-insensitive check)
        $fileType = strtolower(pathinfo($file, PATHINFO_EXTENSION));

        // Check if the file is in our allowed list
        if(in_array($fileType, $allowedFileTypes)) {
            // Build the full file path for the link
            $filePath = $filesDirectory . $file;

            // Check if it's an image file to show a preview
            $isImage = in_array($fileType, ['jpg', 'png', 'gif']);
            
            if($isImage) {
                // For images: show a thumbnail inside a download link
                echo "<a href='$filePath' download='$file'>
                        <img src='$filePath' width='200' alt='Preview of $file'>
                      </a> ";
            } else {
                // For non-images: show the filename as a download link
                echo "<a href='$filePath' download='$file' style='display:block; margin:8px 0;'>
                        📄 Download $file
                      </a> ";
            }
        }
    }
    closedir($openDirectory);
}
?>

Quick Tips:

  • Add More File Types: Just append the extension to the $allowedFileTypes array (e.g., 'zip', 'csv')
  • Force Download for All Files: The download attribute works for most modern browsers, but if you need to ensure files like PDFs don't open in the browser, you can create a simple PHP download handler script (let me know if you want help with that!)
  • Styling: Tweak the inline CSS or add a stylesheet to make the links look cleaner—for example, adding padding around images or changing the text link color.

内容的提问来源于stack exchange,提问作者zeenath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:07:43