0

これはかなり簡単なことで、私を怒らせています!

PHPでファイルをアップロードし、そのファイルをBLOBとしてMySQLに書き込もうとしています。

問題は、私が使用しようとすると、サイトが常に「未定義のインデックス」をスローすることです。

$ _FILES['file']['tmp_name']プロパティ。

これが私のコードです:

<head>
    <title>Upload Worksheet</title>
</head>
<body>
    <form action="index.php" method="POST" enctype="multipart/form-data">
        <input type="hidden" name="MAX_FILE_SIZE" value="2000" />
        File : 
        <input type="file" name"file" id="file"><input type="submit" value="Upload">
    </form>


    <?php

        //connect to db
        mysql_connect("localhost","root","") or die(mysql_error());
        mysql_select_db("autoedi") or die(mysql_error());

        //file properties
        $file = $_FILES['file']['tmp_name'];

        if(!isset($file))
        echo "Please choose a file.";
        else {
            $uploadfile = addslashes(file_get_contents( $_FILES['file']['name']));
            $uploadfilename = addslashes($_FILES['file']['tmp_name']);  
        }


    ?>


</body>

エラーメッセージは次のようになります。

エラーメッセージ

この段階を乗り越えることができないので、私はデータベース側にさえ到達していません。

私はPHPの初心者なので、助けていただければ幸いです。

4

2 に答える 2

3

フォームがまだ送信されていないため、そのエラー メッセージが表示されます。アップロード ボタンを押すと、フォームがサーバーに送信され、PHP によって $_POST および $_FILES 配列にデータが入力されます。ただし、配列はその時点まで空です。したがって、次のように、データが設定されているかどうかを確認することをお勧めします。

if (isset ($_POST['upload']))
{
    // upload logic here

    if(!isset($_FILES['file']) || ($_FILES['file']['tmp_name'] == ''))
        echo "Please choose a file.";
    else {
        $uploadfile = addslashes(file_get_contents( $_FILES['file']['name']));
        $uploadfilename = addslashes($_FILES['file']['tmp_name']);  
    }
}

これは、「 」という名前の送信ボタンがあることを前提としていますupload

于 2012-08-07T06:47:20.777 に答える
0

これらの値でコードを実行するには、ポスト値をチェックする必要があるため、上記の回答は完璧ですが、次のことも試すことができます

<?php

        //connect to db
        mysql_connect("localhost","root","") or die(mysql_error());
        mysql_select_db("autoedi") or die(mysql_error());

        //file properties
      if(isset($_POST))
    {

      if(array_key_exists('file',$_FILES))
    {   

     $file = $_FILES['file']['tmp_name'];

        if(!isset($file))
        echo "Please choose a file.";
        else {
            $uploadfile = addslashes(file_get_contents( $_FILES['file']['name']));
            $uploadfilename = addslashes($_FILES['file']['tmp_name']);  
        }

}


    ?>
于 2012-08-07T07:23:25.360 に答える