在php上传和显示(选择)视频

时间:2014-11-27 06:56:07

标签: php mysql

我通过上传图像和视频制作表格,文件存放在某个文件夹中,路径存储在mysql表中,现在当我选择图像文件然后我会正确显示时,我的图像选择代码是。 ..

$smt=$conn->prepare('SELECT * FROM post');
$smt->execute();
 <?php while($gdata=$smt->fetch(PDO::FETCH_OBJ)):?>
        <a href="#" class="media-left col-md-4 clearfix"><img src="posts/<?php echo  $gdata->Post_Path; ?>" alt="image" class="post-image"/></a>
        <div class="media-body col-md-8 post-image-space pull-left">
            <div class="post-overview">
                <ul>
                    <li class="post-category"><?php echo $gdata->Category;?></li>
                    <li class="post-timestemp">Post on <?php echo $gdata->Post_Date;?></li>
                </ul>


            <a href="post-description.php?id=<?php echo $gdata->Id?>"><h4 class="media-heading h4"><?php echo $gdata->Title;?></h4></a>
            <p class="post-text"><?php echo $gdata->Post;?></p>
          </div>


</div>
<?php endwhile;?>

现在的问题是,通过上述方式我可以访问视频文件,但无法显示?如何检查文件是图像还是视频?

在我的数据库中,路径将存储如example.jpg / mypic.png,test.mp4,如何查看文件的最后一个扩展名?

我的更新代码是......

<?php
include 'conn.php';
$smt=$conn->prepare('SELECT * FROM post');
$smt->execute();
$row=$smt->fetch(PDO::FETCH_OBJ);
$row->Post_Path;
$ext=pathinfo($row,PATHINFO_EXTENSION);

?>

<?php if($ext=='mp4')

{?>

    <?php while($gdata=$smt->fetch(PDO::FETCH_OBJ)):?>
    <a href="#" class="media-left col-md-4 clearfix"><video class="post-image" controls>
            <source src="posts/<?php echo $gdata->$ext;?>" type="video/mp4">
        </video></a>
    <div class="media-body col-md-8 post-image-space pull-left">
        <div class="post-overview">
            <ul>
                <li class="post-category"><?php echo $gdata->Category;?></li>
                <li class="post-timestemp">Post on <?php echo $gdata->Post_Date;?></li>
            </ul>


            <a href="post-description.php?id=<?php echo $gdata->Id?>"><h4 class="media-heading h4"><?php echo $gdata->Title;?></h4></a>
            <p class="post-text"><?php echo $gdata->Post;?></p>
        </div>


    </div>
    <?php endwhile;
}

elseif($ext=='jpg||jpeg||png')
{

    ?>

    <?php while ($gdata = $smt->fetch(PDO::FETCH_OBJ)): ?>
        <a href="#" class="media-left col-md-4 clearfix"><img src="posts/<?php echo $gdata->Post_Path; ?>" alt="image"
                                                              class="post-image"/></a>
        <div class="media-body col-md-8 post-image-space pull-left">
            <div class="post-overview">
                <ul>
                    <li class="post-category"><?php echo $gdata->Category; ?></li>
                    <li class="post-timestemp">Post on <?php echo $gdata->Post_Date; ?></li>
                </ul>


                <a href="post-description.php?id=<?php echo $gdata->Id ?>"><h4
                        class="media-heading h4"><?php echo $gdata->Title; ?></h4></a>

                <p class="post-text"><?php echo $gdata->Post; ?></p>
            </div>


        </div>

    <?php endwhile;
}?>

我无法在我的索引页面中显示视频,如何显示视频,但我能够显示图像..

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:3)

$info = new SplFileInfo('testing.jpg');
var_dump($info->getExtension());

<强> Reference

在有人进来之前说这需要额外安装

  

此扩展在PHP 5.0.0中默认可用并编译。

<强> Reference

答案 1 :(得分:1)

检查一下。这可能对你有所帮助..

对于PHP&lt; 5.3使用mime_content_type()

对于PHP&gt; = 5.3,请使用finfo_fopen()

$smt=$conn->prepare('SELECT * FROM post');
$smt->execute();
 <?php while($gdata=$smt->fetch(PDO::FETCH_OBJ)):

$mime = mime_content_type($gdata->Post_Path);
if(strstr($mime, "video/")){
    // this code for video
$file='';
}else if(strstr($mime, "image/")){
    // this code for image

$file='<img src="posts/'.$gdata->Post_Path.'" alt="image" class="post-image"/>';
}

?>
        <a href="#" class="media-left col-md-4 clearfix"><?php echo $file?></a>
        <div class="media-body col-md-8 post-image-space pull-left">
            <div class="post-overview">
                <ul>
                    <li class="post-category"><?php echo $gdata->Category;?></li>
                    <li class="post-timestemp">Post on <?php echo $gdata->Post_Date;?></li>
                </ul>


            <a href="post-description.php?id=<?php echo $gdata->Id?>"><h4 class="media-heading h4"><?php echo $gdata->Title;?></h4></a>
            <p class="post-text"><?php echo $gdata->Post;?></p>
          </div>


</div>
<?php endwhile;?>

mime_content_type适用于大多数文件扩展名。

答案 2 :(得分:0)

试试这个:

$fileInfo = pathinfo($gdata->Post_Path);

if($fileInfo['extension'] == 'png')
{
    echo "It's an PNG";
}
elseif($fileInfo['extension'] == 'mp4')
{
    echo "It's an MP4";
}

答案 3 :(得分:0)

$file_parts = pathinfo($filename);

switch($file_parts['extension'])
{
    case "jpg":
    break;

    case "exe":
    break;

    case "": // Handle file extension for files ending in '.'
    case NULL: // Handle no file extension
    break;
}

可能会帮助你。