文章出處

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

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

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

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

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

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

提交視頻有個前提就是要改一下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文件夾,你所有提交的文件將都會保存在這個文件夾里

下面來試一下吧

點擊上傳

 

提交成功

看一下數據庫里

 

添加成功!

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


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()