我创建了一个前端系统,允许人们提交图片和pdf文件。
事后看来,我们应该把它分成两个单独的字段,但现在太晚了,因为有超过500个提交。
我怎么能首先检测什么格式的文件是然后显示它作为img
,如果它是jpg/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 } ?>
您总是可以从发布的文件字段中获取扩展名。这并不完全准确,因为你可以将任何文件命名为"。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" />';
}
}
UPDATE:下面的示例在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 />