這個問題一直困擾了我好幾天,終于在今天讓我給解決了,難以掩飾的激動。
其實在之前沒有接觸到這種問題,只是表單提交數據而已,再就是圖片,四種類型同時提交還真是沒遇到過,做了一個系統,其中有一個功能就是提交這四種類型的數據,我只能把這個功能拿到最后來做,就在這幾天所有功能都做完了,只剩下了這一個功能,我真的很鬧心,這幾天睡覺都睡的不踏實,各種的表單提交,做夢也是表單提交,醒來后我在想我的內心原來那么脆弱么,一點壓力都承受不住?
事實還好,不管怎么樣問題都被解決了
也很感謝博客園的一位哥哥,指點了我,遠程幫我改了一下環境配置,解決了最關鍵的問題。
廢話就不多說了,下面來看一下代碼和效果圖吧
只為了實現功能,所以寫的很簡單
提交視頻有個前提就是要改一下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文件夾,你所有提交的文件將都會保存在這個文件夾里
下面來試一下吧
點擊上傳
提交成功
看一下數據庫里
添加成功!
如果需要的話,把這些數據遍歷讀出就可以了。
文章列表