簡體   English   中英

從前端上傳中檢測文件類型並根據jpg / png或pdf顯示不同的內容?

[英]Detect file type from front end upload and display differently depending on jpg/png or pdf?

我創建了一個前端系統,該系統允許人們提交圖像和pdf。

事后看來,我們會將其分為兩個單獨的字段,但是現在已經太遲了,因為有500多個提交。

如何首先檢測文件的格式,如果是jpg / png,則顯示為img如果是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" />';
    }
}

更新:以下示例在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 />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM