1. 程式人生 > >php表單提交 圖片、音樂、視頻、文字,四種類型共同提交到數據庫

php表單提交 圖片、音樂、視頻、文字,四種類型共同提交到數據庫

class 文件 loaded 頁面 ins 需要 ech video 文件是否存在

這個問題一直困擾了我好幾天,終於在今天讓我給解決了,難以掩飾的激動。

其實在之前沒有接觸到這種問題,只是表單提交數據而已,再就是圖片,四種類型同時提交還真是沒遇到過,做了一個系統,其中有一個功能就是提交這四種類型的數據,我只能把這個功能拿到最後來做,就在這幾天所有功能都做完了,只剩下了這一個功能,我真的很鬧心,這幾天睡覺都睡的不踏實,各種的表單提交,做夢也是表單提交,醒來後我在想我的內心原來那麽脆弱麽,一點壓力都承受不住?

事實還好,不管怎麽樣問題都被解決了

也很感謝博客園的一位哥哥,指點了我,遠程幫我改了一下環境配置,解決了最關鍵的問題。

廢話就不多說了,下面來看一下代碼和效果圖吧

只為了實現功能,所以寫的很簡單

提交視頻有個前提就是要改一下php的配置文件,找到這個文件,改一下它規定文件的最大mb就可以了

技術分享

這個必須要改,不改的話,視頻是傳不過去的

接下來看一下html的代碼

技術分享

運行起來就是這種效果

技術分享

接下來寫它的處理頁面

寫之前先打印一下。看看能不能把數據都能傳過來

在它的處理頁面

技術分享

寫完後保存一下

然後在運行的第一個頁面,填充上數據

因為只打印了圖片、音樂、視頻、所以文字可以先不填

技術分享

點擊上傳

技術分享

數據可以被成功傳過來,這樣我們就成功了一大半了

下面再來分別寫這三類文件

//       圖片
//判斷文件上傳是否出錯
if($_FILES["file"]["error"])
{
    
echo $_FILES["file"]["error"]; } else { //控制上傳文件類型 if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/png") && $_FILES["file"]["size"]<1024000) { //找到文件存放的位置 $filename = "./file/".date("YmdHis").$_FILES["file"]["name"]; //加 . 拼接 //轉換編碼格式
$filename = iconv("UTF-8","gb2312",$filename); //判斷文件是否存在 if(file_exists($filename)) { echo "該文件已存在!"; } else { //保存文件 move_uploaded_file($_FILES["file"]["tmp_name"],$filename); //移動上傳文件 $tp = $filename; } } else { echo "文件類型不正確"; } } if($_FILES["file1"]["error"]) { echo $_FILES["file1"]["error"]; } else { //控制上傳文件類型 if(($_FILES["file1"]["type"]=="audio/mpeg" || $_FILES["file1"]["type"]=="mp3/mp3") && $_FILES["file1"]["size"]<5000000) { //找到文件存放的位置 $file1name = "./file/".date("YmdHis").$_FILES["file1"]["name"]; //加 . 拼接 //轉換編碼格式 $file1name = iconv("UTF-8","gb2312",$file1name); //判斷文件是否存在 if(file_exists($file1name)) { echo "該文件已存在!"; } else { //保存文件 move_uploaded_file($_FILES["file1"]["tmp_name"],$file1name); //移動上傳文件 $yy = $file1name; } } else { echo "文件類型不正確"; } } // 視頻 //判斷文件上傳是否出錯 if($_FILES["file2"]["error"]) { echo $_FILES["file2"]["error"]; } else { //控制上傳文件類型 if(($_FILES["file2"]["type"]=="video/mp4" || $_FILES["file2"]["type"]=="mp4/mp4") && $_FILES["file2"]["size"]<500000000) { //找到文件存放的位置 $file2name = "./file/".date("YmdHis").$_FILES["file2"]["name"]; //加 . 拼接 //轉換編碼格式 $file2name = iconv("UTF-8","gb2312",$file2name); //判斷文件是否存在 if(file_exists($file2name)) { echo "該文件已存在!"; } else { //保存文件 move_uploaded_file($_FILES["file2"]["tmp_name"],$file2name); //移動上傳文件 $sp = $file2name; } } else { echo "文件類型不正確"; } }

這裏主要文件類型是你剛才打印 出來的type ,如果剛才提交的不是MP4格式的文件,則它輸出的類型也不一樣,如圖

技術分享

點擊上傳

技術分享

這裏出現的type就是另一種類型

所以你想提交哪種類型的,就一定對應好,否則會提示文件類型不正確的

接下來寫一下完整的處理頁面的代碼吧

<?php
$wz = $_POST["wz"];
//var_dump($_FILES["file"]);   //索引寫它的name值
//var_dump($_FILES["file1"]);
//var_dump($_FILES["file2"]);
include("DBDA.php");
$dx = new DBDA();

//       圖片
//判斷文件上傳是否出錯
if($_FILES["file"]["error"])
{
    echo $_FILES["file"]["error"];
}
else
{
    //控制上傳文件類型
    if(($_FILES["file"]["type"]=="image/jpeg" || $_FILES["file"]["type"]=="image/png") && $_FILES["file"]["size"]<1024000)
    {
        //找到文件存放的位置
        $filename = "./file/".date("YmdHis").$_FILES["file"]["name"];  //加 .  拼接
        //轉換編碼格式
        $filename = iconv("UTF-8","gb2312",$filename);
        //判斷文件是否存在
        if(file_exists($filename))
        {
            echo "該文件已存在!";
        }
        else
        {
        //保存文件
        move_uploaded_file($_FILES["file"]["tmp_name"],$filename);                   //移動上傳文件  
        $tp = $filename;  
        }
    }
    else
    {
        echo "文件類型不正確";
    }
}
if($_FILES["file1"]["error"])
{
    echo $_FILES["file1"]["error"];
}
else
{
    //控制上傳文件類型
    if(($_FILES["file1"]["type"]=="audio/mpeg" || $_FILES["file1"]["type"]=="mp3/mp3") && $_FILES["file1"]["size"]<5000000)
    {
        //找到文件存放的位置
        $file1name = "./file/".date("YmdHis").$_FILES["file1"]["name"];  //加 .  拼接
        //轉換編碼格式
        $file1name = iconv("UTF-8","gb2312",$file1name);
        //判斷文件是否存在
        if(file_exists($file1name))
        {
            echo "該文件已存在!";
        }
        else
        {
        //保存文件
        move_uploaded_file($_FILES["file1"]["tmp_name"],$file1name);                   //移動上傳文件
        $yy = $file1name;    
        }
    }
    else
    {
        echo "文件類型不正確";
    }
}

//          視頻
//判斷文件上傳是否出錯
if($_FILES["file2"]["error"])
{
    echo $_FILES["file2"]["error"];
}
else
{
    //控制上傳文件類型
    if(($_FILES["file2"]["type"]=="application/octet-stream" || $_FILES["file2"]["type"]=="flv/qsv") && $_FILES["file2"]["size"]<500000000)
    {
        //找到文件存放的位置
        $file2name = "./file/".date("YmdHis").$_FILES["file2"]["name"];  //加 .  拼接
        //轉換編碼格式
        $file2name = iconv("UTF-8","gb2312",$file2name);
        //判斷文件是否存在
        if(file_exists($file2name))
        {
            echo "該文件已存在!";
        }
        else
        {
        //保存文件
        move_uploaded_file($_FILES["file2"]["tmp_name"],$file2name);                   //移動上傳文件
        $sp = $file2name;    
        }
    }
    else
    {
        echo "文件類型不正確";
    }
}


$sql = "insert into tp values(‘‘,‘{$tp}‘,‘{$yy}‘,‘{$sp}‘,‘{$wz}‘)";
         $r = $dx->Query($sql,0);
         if($r)
         {
          echo "提交成功";
          
         }
         else
         {
            echo "提交失敗"; 
          }

你在寫之前最好打印一下你要提交視頻的類型是什麽,還有音樂也是

我所用的數據庫是這個

技術分享

還有一點很重要的是,文件名不要含有漢字,。

在同一目錄下新建一個file文件夾,你所有提交的文件將都會保存在這個文件夾裏

技術分享

下面來試一下吧

技術分享

點擊上傳

技術分享

提交成功

看一下數據庫裏

技術分享

添加成功!

如果需要的話,把這些數據遍歷讀出就可以了。

php表單提交 圖片、音樂、視頻、文字,四種類型共同提交到數據庫