簡體   English   中英

使用foreach循環檢查文件輸入字段是否為空

[英]check if file input field is empty using foreach loop

我有7個文件輸入字段,即:

<input type="file" accept="image/*" name="imgreq1">
<input type="file" accept="image/*" name="imgreq2">
<input type="file" accept="image/*" name="imgreq3">
<input type="file" accept="image/*" name="imgreq4">
<input type="file" accept="image/*" name="imgreq5">
<input type="file" accept="image/*" name="imgreq6">
<input type="file" accept="image/*" name="imgreq7">

例如,如果我在第一個和第二個輸入字段中上傳了文件,如何檢查其他輸入字段是否為空。 然后提交表格,將其他字段留空?

更新:

<?php
    if(isset($_POST['sumit'])){
        $count = count($_FILES);
        for($i = 1; $i <= $count; ++$i){
            if(is_uploaded_file($_FILES['imgreq'.$i]['tmp_name']) || !file_exists($_FILES['imgreq'.$i]['tmp_name'])){
                echo "$i";
                // your code
            }else{
                //to  retrieve user_id to stored in the request table in the database
                $query = "SELECT * FROM dummyclients_tbl WHERE user_id = '".$_SESSION['user']."'";
                if (!$result = mysql_query($query)) {
                    exit(mysql_error());
                }
                if(mysql_num_rows($result) > 0){
                    while($row = mysql_fetch_assoc($result)){
                        $sid= ''.$row['user_id'].'';
                        $coll=''.$row['college'].'';
                        $stat="Pending";

                        //$query="SELECT document_name FROM document_tbl WHERE document_id = '$passed_id'";
                        //$dn=mysql_query($query);
                        //$getname=mysql_fetch_assoc($dn);
                        //var_dump($getname);


                        //to analyze the contents of the image selected in filebrowser1
                        $image1=addslashes($_FILES['imgreq1']['tmp_name']);
                        $name1=addslashes($_FILES['imgreq1']['name']);
                        $image1=file_get_contents($image1);
                        $image1=base64_encode($image1);


                        //to analyze the contents of the image selected in filebrowser2
                        $image2=addslashes($_FILES['imgreq2']['tmp_name']);
                        $name2=addslashes($_FILES['imgreq2']['name']);
                        $image2=file_get_contents($image2);
                        $image2=base64_encode($image2);


                        //to analyze the contents of the image selected in filebrowser3
                        $image3=addslashes($_FILES['imgreq3']['tmp_name']);
                        $name3=addslashes($_FILES['imgreq3']['name']);
                        $image3=file_get_contents($image3);
                        $image3=base64_encode($image3);


                        //to analyze the contents of the image selected in filebrowser4
                        $image4=addslashes($_FILES['imgreq4']['tmp_name']);
                        $name4=addslashes($_FILES['imgreq4']['name']);
                        $image4=file_get_contents($image4);
                        $image4=base64_encode($image4);


                        //to analyze the contents of the image selected in filebrowser5
                        $image5=addslashes($_FILES['imgreq5']['tmp_name']);
                        $name5=addslashes($_FILES['imgreq5']['name']);
                        $image5=file_get_contents($image5);
                        $image5=base64_encode($image5);


                        //to analyze the contents of the image selected in filebrowser6
                        $image6=addslashes($_FILES['imgreq6']['tmp_name']);
                        $name6=addslashes($_FILES['imgreq6']['name']);
                        $image6=file_get_contents($image6);
                        $image6=base64_encode($image6);


                        //to analyze the contents of the image selected in filebrowser7
                        $image7=addslashes($_FILES['imgreq7']['tmp_name']);
                        $name7=addslashes($_FILES['imgreq7']['name']);
                        $image7=file_get_contents($image7);
                        $image7=base64_encode($image7);

                        //function nga defined sa dalum para i insert ang uploaded files sa databasess
                        saveimage($sid,$passed_id,$image1,$image2,$image3,$image4,$image5,$image6,$image7,$stat,$coll);

                    }
                }
            }
        }
    }      

    function saveimage($sid,$passed_id,$image1,$image2,$image3,$image4,$image5,$image6,$image7,$stat,$coll){
        $con=mysql_connect("localhost","root","");
        mysql_select_db("dummy",$con);
        $qry="INSERT INTO request_tbl (user_id,document_id,imgreq1,imgreq2,imgreq3,imgreq4,imgreq5,imgreq6,imgreq7,request_status,college) VALUES ('$sid','$passed_id','$image1','$image2','$image3','$image4','$image5','$image6','$image7','$stat','$coll')";
        $result=mysql_query($qry,$con);
        if($result){
            ?>
                <script>alert('Requirements Successfully Submitted!');</script>

            <?php

        }else{
            ?>
                <script>alert('Error while submitting form!');</script>
            <?php
        }
    }
?>

根據OP的評論

但是,如何使用每個循環來實現此功能,這是php的深層功能...

將簡單的for循環與is_uploaded_file()函數結合使用,以檢查用戶是否通過HTTP POST上傳了文件,如下所示:

$count = count($_FILES);
for($i = 1; $i <= $count; ++$i){
    if(is_uploaded_file($_FILES['imgreq'.$i]['tmp_name'])){
        // user has uploaded a file
    }
}

更新:

根據以下有關OP的討論,完整的解決方案將如下所示:

<?php
    if(isset($_POST['sumit'])){
        $count = count($_FILES);
        $query = "SELECT * FROM dummyclients_tbl WHERE user_id = '".$_SESSION['user']."'";
        if (!$result = mysql_query($query)) {
            exit(mysql_error());
        }
        if(mysql_num_rows($result)){
            $row = mysql_fetch_assoc($result);
            $sid = $row['user_id'];
            $coll =$row['college'];

            $query = "INSERT INTO request_tbl (user_id,document_id,imgreq1,imgreq2,imgreq3,imgreq4,imgreq5,imgreq6,imgreq7,request_status,college) VALUES ('$sid','$passed_id'";
            for($i = 1; $i <= $count; ++$i){
                if(is_uploaded_file($_FILES['imgreq'.$i]['tmp_name']) && $_FILES['imgreq'.$i]['size']){
                    $query .= ",'" . base64_encode(file_get_contents(addslashes($_FILES['imgreq'.$i]['tmp_name']))) . "'";
                }else{
                    $query .= ",NULL";
                }
            }
            $query .= ",'$stat','$coll')";
            saveimage($query);
        }
    }      

    function saveimage($qry){
        $con = new mysqli("localhost", "root", "", "dummy");
        $result=mysqli_query($con, $qry);
        if($result){
             ?>
                <script>alert('Requirements Successfully Submitted!');</script>
            <?php
        }else{
            ?>
                <script>alert('Error while submitting form!');</script>
            <?php
        }
    }
?>

作為附帶說明,請了解准備好的語句,因為它可以防止您的查詢受到任何類型的SQL注入攻擊。 這是有關如何防止在PHP中進行SQL注入的很好的閱讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM