1

生徒が課題を提出し、教師が確認できる教師用の Web フォームを作成しています。しかし、エラーが発生しています。.txt と .doc をアップロードできません。コードに問題があります。これが私の努力です。

error_reporting(E_ALL ^ E_NOTICE);
if ($_POST["upload"] == "1") {

    if ((($_FILES['file']['type'] == ".txt") || ($_FILES['file']['type'] == ".doc")) && ($_FILES['file']['size'] > "0")) {
        $id = 4881;
        $name = "Naeem";
        /*first image folder i i showed abd get file and move*/
        $fileName = $_FILES["file"]["name"];
        $fileName = preg_replace('#[^a-z.0-9]#i', '', $fileName);
        $kaboom = explode(".", $fileName);
        // Split file name into an array using the dot
        $fileExt = end($kaboom);
        // Now target the last array element to get the file extension
        $fileName = $id . "(" . time() . rand() . ")." . $fileExt;
        $to = "file/" . $fileName;

        /*this step is used to move file from tmp to a folder*/
        if (move_uploaded_file($_FILES['file']['tmp_name'], $to)) {
            if ($query = mysql_query("INSERT INTO `file` (
                                        `id` ,
                                        `std_id` ,
                                        `std_name` ,
                                        `file_url`
                                        )
                                        VALUES (
                                            NULL , '" . $id . "', '" . $name . "', '" . $to . "'
                                        );"))
            {
                echo "Uploaded succesfully";
            }
        }
    }
}
4

2 に答える 2

3

コードに間違った拡張子を付けたという小さな間違いがあります。

if((($_FILES['file']['type']=="text/plain") || ($_FILES['file']['type']=="application/msword"))&&($_FILES['file']['size']>"0"))

.txt や .doc ではなく、テキスト ファイルの場合はtext/plainであり、.doc の場合はapplication/mswordです。うまくいくことを願っています。

于 2013-09-11T11:30:55.690 に答える
3

これが問題です-

(($_FILES['file']['type']==".txt") || ($_FILES['file']['type']==".doc"))

ファイル拡張子MIME タイプが一致しません。

And.txtに置き換えます。text/plain.docapplication/msword

于 2013-09-11T11:31:08.497 に答える