Php 3gp fine未移动到数据库
我有一个难以置信的问题,这个代码。这段代码是为mp4,mp3运行的。但当它是一个3gp文件时,数据会被转到数据库表中,但不会将3gp文件上载到远程服务器。请告诉我哪里出了问题:Php 3gp fine未移动到数据库,php,html,mysql,Php,Html,Mysql,我有一个难以置信的问题,这个代码。这段代码是为mp4,mp3运行的。但当它是一个3gp文件时,数据会被转到数据库表中,但不会将3gp文件上载到远程服务器。请告诉我哪里出了问题: <?php $conn = mysql_connect("localhost","root","0123"); if(!$conn) { print"Could not connect to the server " .mysql_error(); } $db = mysql_select_db ("
<?php
$conn = mysql_connect("localhost","root","0123");
if(!$conn)
{
print"Could not connect to the server " .mysql_error();
}
$db = mysql_select_db ("data", $conn);
if(!$db)
{
print"Could not connect to the Database " .mysql_error();
}
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=yes" name="viewport">
<title >My Choice</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="main">
<form action="index.php" method="post" enctype="multipart/form-data">
<p style="color:#663366"><h><br>Post Your audio/video title : </h2></p>
<input type="text" name="title" />
<p style="color:#333366"><br><br>
Select audio/video:</p> <input type="file" id="file" name="file"/><br><br>
<input align="middle" type="submit" name="submit" value="Submit"><br><br>
</form>
<?php
error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors', 1);
if(isset($_POST['submit'])) {
$allowedExts = array("mp3","mp4", "3gp", "3gpp");
$extension = end(explode(".", $_FILES["file"]["name"]));
if(($_FILES["file"]["type"] == "video/mp4") ||($_FILES["file"]["type"] == "audio/mpeg")|| ($_FILES["file"]["type"] == "video/3gpp") && ($_FILES["file"]["size"] < 20000000) && in_array($extension, $allowedExts)) {
if($_FILES["file"]["error"] > 0) {
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
} else {
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if(file_exists("upload/" . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " already exists. ";
} else {
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
} else {
echo "Invalid file";
}
}
$dir = $dir.$_FILES['file']['name'];
$sql = "insert into 3gp values ('','$title','$dir')";
$send = mysql_query($sql);
if($send)
echo "<br> <b>It is posted for all. </b>";
?> </div>
</html>
我的选择
发布您的音频/视频标题:
选择音频/视频:
if($U文件[“文件”][“类型”]=“视频/mp4”)| |($U文件[“文件”][“类型”]=“音频/mpeg”)| |($U文件[“文件”][“类型”]=“视频/3gpp”)&($U文件[“文件”[“大小”]<20000000)&&in_数组($extension,$allowedExts)){
改为:
if(($_FILES["file"]["type"] == "video/mp4") ||($_FILES["file"]["type"] == "audio/mpeg")|| ($_FILES["file"]["type"] == "video/3gpp") || ($_FILES["file"]["type"] == "video/x-3gp") && ($_FILES["file"]["size"] < 20000000) && in_array($extension, $allowedExts)) {
if($U文件[“文件”][“类型”]=“视频/mp4”)| |($U文件[“文件”][“类型”]=“音频/mpeg”)| |($U文件[“文件”][“类型”]=“视频/3gpp”)|($U文件[“文件”[“类型”]=“视频/x-3gp”)&($U文件[“文件”[“大小”]<20000000)和在阵列中($扩展名,$alloweds)){
希望video/x-3gp
能起作用,请让我知道结果!:)您的代码已经损坏。$\u文件[$file][“type”]
毫无意义。它是由上传文件的浏览器提供的,而不是由服务器提供的,因此经常丢失或错误。应该忽略它
将初始条件更改为简单:
if($_FILES[“file”][“size”]<20000000)和&in_数组($extension,$allowedExts)){
它仍然会检查数组中文件的扩展名
这应该可以工作:)可能重复@class,该问题已被删除。请提供任何解决方案…您是否在浏览器中修复了问题?您的Firefox实例将继续上载3gp文件,类型为应用程序/force download
,直到您在浏览器配置文件中修复了问题,否则添加应用程序/octet stream
同样适用于阵列:)它是音频3gp文件还是视频?它是视频。我在这段代码中做了一个新的测试…$tp=$\u文件[“文件”][“类型”];echo“$tp”;我看到文件类型是“应用程序/强制下载”,我无法理解我的第二个答案:)它会为您解决这个问题。
if(($_FILES["file"]["type"] == "video/mp4") ||($_FILES["file"]["type"] == "audio/mpeg")|| ($_FILES["file"]["type"] == "video/3gpp") || ($_FILES["file"]["type"] == "video/x-3gp") && ($_FILES["file"]["size"] < 20000000) && in_array($extension, $allowedExts)) {