0

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 行目を確認しましたが、成功しませんでした)。

アドバイスありがとう。

4

2 に答える 2

2

アップロードしようとしているファイルのサイズ。PHP には、特定のファイル アップロード サイズ制限があります。アップロードされたファイルがこの制限を超えると、$_FILES 配列から空白のデータが返されます。php.ini のファイル アップロード セクションでサイズ制限を確認し、投稿の最大サイズも確認してください。デフォルトのサイズは 2 MB ですが、サーバーを増やして再起動できます。

これを試して

于 2013-02-09T10:44:35.007 に答える
1

私の人生では、ここで何が悪いのか本当にわかりません。ただし、XAMPP のインストールを最新バージョンにアップグレードすることをお勧めします。通常、アップグレードすると、以前のインストールに存在するバグが修正されます。私は現在 1.8.1 で実行していますが、エラーを再現できませんでした。アップグレードすると、問題が修正される可能性があります。

于 2013-02-10T20:43:47.077 に答える