我想使用php和html表单上传视频文件,php代码和错误如下。
我可以上传除视频(.mp4,.flv,.avi)之外的几乎任何其他文件类型(更改相关代码后的图像,zip,文本等)。
更新:我已将表单上传为图片:
<form enctype="multipart/form-data" action="saveVideo.php" method="post" >
<input type="text" name="txtCardNo" size="6" maxlength="6"autofocus required/>
<input type="file" name="video" required/>
<input type="hidden" name="MAX_FILE_SIZE" value="26214400" />
<input type="submit" value="Submit" class="ok"/>
saveVideo.php:
require_once('config.php');
// get info from the form
$card = trim($_POST['txtCardNo']); //7th line (error 1)
// directory where Videos will be saved
$target = "videos/";
$target = $target . basename($card . ".mp4"); //rename the video
$video = $card . ".mp4"; //name saved in the db
echo $_FILES["video"]["type"]; //14th line (error 2)
if ($_FILES["video"]["type"] == "video/mp4"){ //check for .mp4
if ($_FILES['video']['size'] > $_POST['MAX_FILE_SIZE']){ //check file size
$_SESSION['error'] = "Video size should be less than 25MB.!";
}else{
$check = mysql_query("SELECT SN FROM Videos WHERE CardNo = '$card'"); //check for existing image
if (mysql_num_rows($check) < 1){
$sql_query = "INSERT INTO Videos (CardNo, Video, Date) VALUES ('$card', '$video', NOW())";
}else{
$sql_query = "UPDATE Videos SET CardNo ='$card', Video = '$video', Date = NOW() WHERE CardNo = '$card' LIMIT 1";}
if(mysql_query($sql_query, $dbLink) or die(mysql_error())){
if(move_uploaded_file($_FILES['video']['tmp_name'], $target)){ //move video to videos folder
$_SESSION['error'] = "The file ". basename( $_FILES['video']['name']). " uploaded successfully.!";
}else {
$_SESSION['error'] = "Error moving record.!"; }
}else{
$_SESSION['error'] = "Error updating record.!"; }}
}else{
$_SESSION['error'] = "Invalid file type. Allowed only .mp4, video format.!";
} etc..
错误:
Notice: Undefined index: txtCardNo in C:\xampp\htdocs\video\saveVideo.php on line 7
Notice: Undefined index: video in C:\xampp\htdocs\video\saveVideo.php on line 14
我使用相同的代码(带图像属性)进行图片上传,效果很好。但是在上传视频时,这给了我很多错误,有些错误也得到纠正。现在我无法从表单中获取发布数据到saveVideo.php(我检查了第7行和第14行但没有成功)。
感谢您的建议。
答案 0 :(得分:2)
您要上传的文件大小。 PHP具有一定的文件上载大小限制。如果上载的文件超出此限制,将从$ _FILES数组中提供空白数据。 检查你的php.ini的文件上传部分的大小限制,也检查post max size。默认情况下,大小将为2 MB,您可以增加并重新启动服务器。
试试这个
答案 1 :(得分:1)
对于我的生活,我无法弄清楚这里有什么问题。我确实有一个建议,那就是将XAMPP的安装升级到最新版本。通常升级修复上一次安装中出现的任何错误。我本人目前正在运行1.8.1,并且无法重现您的错误,因此,如果您升级,它将解决任何问题。