0

我创建了一个前端系统,允许人们提交图像和 pdf。

事后看来,我们会将其分成两个单独的字段,但现在为时已晚,因为有超过 500 份提交。

如何首先检测文件的格式,然后将其显示为imgjpg/png 或将其显示为链接(如果它是 pdf)?

这是目前的代码:

<?php if(get_field('submit_image_or_pdf1') != "") { ?>
<img src="<?php echo the_field('submit_image_or_pdf1');?>" alt="<?php echo the_title(); ?> - <?php echo the_field('submit_submission_production_title'); ?>" /> 
<?php } ?>

无论格式如何,这都是实际输出文件的内容:

<?php echo the_field('submit_image_or_pdf1');?>

更新:

<?php $field = get_field('submit_image_or_pdf1');
    function ($field) {
    if ($_FILES[$field]['type'] == 'application/pdf') { ?>
        <a href="<?php echo the_field('submit_image_or_pdf1');?>">View PDF</a>
        <br /><br /><br /><br />
    <?php } else { ?>
        <img src="<?php echo the_field('submit_image_or_pdf1');?>" alt="<?php echo the_title(); ?> - <?php echo the_field('submit_submission_production_title'); ?>" /> 
        <br /><br /><br /><br />
    <?php } ?>
<?php } ?>
4

1 回答 1

1

您始终可以从发布的文件字段中获取扩展名。这并不完全准确,因为您可以将任何文件命名为“.pdf”。因此,在接受来自用户的文件时要小心,因为它们可能包含病毒或其他东西。

function the_field($fileFieldName) {
    if ($_FILES[$fileFieldName]['type'] == 'application/pdf') {
        echo '<a href="/download-the-file-link">Download</a>';
    } else {
        echo '<img src="/the-image-source" />';
    }
}

更新:以下示例适用于 get_field() 返回文件路径的情况。

<?php $field = pathinfo(get_field('submit_image_or_pdf1'));?>
<?php if (isset($field['extension']) && $field['extenstion'] == 'pdf') { ?>
    <a href="<?php echo the_field('submit_image_or_pdf1'); ?>">View PDF</a>
<?php } else { ?>
    <img src="<?php echo the_field('submit_image_or_pdf1'); ?>" alt="<?php echo the_title(); ?> - <?php echo the_field('submit_submission_production_title'); ?>" /> 
<?php } ?>

<br /><br /><br /><br />
于 2013-03-25T14:25:49.190 回答