簡體   English   中英

getimagesize():文件名不能為空

[英]getimagesize(): Filename cannot be empty

我在這里嘗試學習一些php,但是現在我的代碼存在一些問題,我正在嘗試解決“ getimagesize():文件名不能為空”,但還有許多其他問題,例如:/-未定義的變量:日期/-未定義的變量:imgData /是的,我嘗試了其他代碼,但仍然遇到相同的問題/

所以這是我的代碼。

     <?php
    $link = mysqli_connect("blah", "blah", "blah", "blah");
    if($link === false){
        die("ERRRO: Não foi possivel a conexão com a base de dados. " . mysqli_connect_error());
    }       
            if(!empty($_FILES['userImage']['tmp_name']) 
         && file_exists($_FILES['userImage']['tmp_name'])) {
        $imgData= addslashes(file_get_contents($_FILES['userImage']['tmp_name']));
    }
            $imageProperties = getimageSize($_FILES['userImage']['tmp_name']);
            $portal = mysqli_real_escape_string($link, $_POST['field1']);
            $datacri = mysqli_real_escape_string($link, $_POST['field2']);
            $datacri = date('Y-m-d', strtotime(str_replace('-', '/', $date)));
            $datapub = mysqli_real_escape_string($link, $_POST['field3']);
            $datapub = date('Y-m-d', strtotime(str_replace('-', '/', $date)));
            $titulo = mysqli_real_escape_string($link, $_POST['field4']);
            $keyword = mysqli_real_escape_string($link, $_POST['field5']);
            $hashtags = mysqli_real_escape_string($link, $_POST['field6']);
            $pedido = mysqli_real_escape_string($link, $_POST['field7']);
            $autor = mysqli_real_escape_string($link, $_POST['field8']);
    if (!$portal) { 
    echo '<script type="text/javascript"> alert("Preencha todos os campos "); </script>';
    mysqli_close($link);
    }



$sql = "INSERT INTO pedidos (p_portal, p_datacri, p_datapub, p_titulo, p_titulo, p_keywords, p_hashtags, p_imageType, p_imageData, p_pedido, p_autor)
        VALUES('$portal', '$datacri', '$datapub', '$titulo', '$keyword', '$hashtags', '{$imageProperties['mime']}', '{$imgData}', '$pedido', '$autor')";
if(mysqli_query($link, $sql)){
    echo '<script type="text/javascript"> alert("Portal Criado"); </script>';
    } else{
    echo "ERRO: Não foi possivel executar o comando $sql. " . mysqli_error($link);
    }
?>

和我的HTML文件:

    <form action="php\pedidos\p_ins.php" enctype="multipart/form-data" method="post">
    <link rel="stylesheet" href="css\pedidos.css">
    <fieldset>
    <legend><span class="number">1</span> Criar Pedido</legend>
    <label for="portal">Portal</label
    <?php                
    $link = mysqli_connect("blah", "blah", "blah", "blah");
    if($link === false){
        die("ERRRO: Não foi possivel a conexão com a base de dados. " . mysqli_connect_error());}
        $result = $link->query("select po_id, po_nome from portais");
        echo "<html>";
        echo "<body>";
        echo "<select name='field1' name='po_id'>";
        echo "<option value=''>----Selecione um Portal----</option>";
        while ($row = $result->fetch_assoc()) {
            unset($id, $name);
            $id = $row['po_id'];
            $name = $row['po_nome'];
            echo '<option value="'.$id.'">'.$name.'</option>';
            }    echo "</select>";
            echo "</body>";
            echo "</html>";?>
            <label>Data de Criação</label>
            <input type="date" name="field2" placeholder="Data de publicacao do Post">
            <label>Data de Publicação</label>
            <input type="date" name="field3" placeholder="Data de publicacao do Post">
            <label>Titulo</label>
            <input type="text" name="field4" placeholder="Insira aqui o Titulo">
            <label>Keywords</label>
            <input type="text" name="field5" placeholder="Insira aqui as Keywords">
            <label>Hashtags</label>
            <input type="text" name="field6" placeholder="Insira aqui as Hashtags">
            <label>Imagem</label>
            <p> </p>
            <input type="file" name="userImage" accept="image/*" class="inputFile"> <p> </p>
            <label>Pedido</label>
            <textarea type="text" name="field7" placeholder="Insira aqui o Pedido"></textarea>
            <label for="autores">Autor</label>
            <?php
                $result = $link->query("SELECT *FROM autores");
                echo "<html>";
                echo "<body>";
                echo "<select name='field8' name='a_id'>";
                echo "<option value=''>----Selecione um autor----</option>";
                while ($row = $result->fetch_assoc()) {
                    unset($id, $name)
;                  $id = $row['a_id'];
                  $name = $row['a_nome']; 
                  echo '<option value="'.$id.'">'.$name.'</option>';
                  }    echo "</select>"; 
                  echo "</body>";   
                  echo "</html>";?> 
                  <input type="submit" value="Enviar" />    
                  <div id='footer'> 
                  </div>
                  </form>

謝謝。

確保您的input type="file"在具有enctype="multipart/form-data" ,否則將不會發送到文件到您的PHP腳本中,並且$_FILES['userImage']['tmp_name']將空着

<form method="post" enctype="multipart/form-data" action="yourphpfile.php">
    <label>Data de Criação</label>
    <input type="date" name="field2" placeholder="Data de publicacao do Post">
    <label>Data de Publicação</label>
    <input type="date" name="field3" placeholder="Data de publicacao do Post">
    <label>Titulo</label>
    <input type="text" name="field4" placeholder="Insira aqui o Titulo">
    <label>Keywords</label>
    <input type="text" name="field5" placeholder="Insira aqui as Keywords">
    <label>Hashtags</label>
    <input type="text" name="field6" placeholder="Insira aqui as Hashtags">
    <label>Imagem</label>
    <p> </p>
    <input type="file" name="userImage" class="inputFile">  <p> </p>
    <label>Pedido</label>
    <textarea type="text" name="field7" placeholder="Insira aqui o Pedido"></textarea>
    <label for="autores">Autor</label>
</form>

至於您的PHP代碼,我建議將與插入數據庫有關的所有塊放在if塊內。 另外,您在這里已解決了一些錯誤:

if(!empty($_FILES['userImage']['tmp_name']) 
     && file_exists($_FILES['userImage']['tmp_name'])) {
    $imgData= mysqli_real_escape_string($link, file_get_contents($_FILES['userImage']['tmp_name']));
    $imageProperties = getimageSize($_FILES['userImage']['tmp_name']);
    $portal = mysqli_real_escape_string($link, $_POST['field1']);
    $date = mysqli_real_escape_string($link, $_POST['field2']);
    $datacri = date('Y-m-d', strtotime(str_replace('-', '/', $date)));
    $date = mysqli_real_escape_string($link, $_POST['field3']);
    $datapub = date('Y-m-d', strtotime(str_replace('-', '/', $date)));
    $titulo = mysqli_real_escape_string($link, $_POST['field4']);
    $keyword = mysqli_real_escape_string($link, $_POST['field5']);
    $hashtags = mysqli_real_escape_string($link, $_POST['field6']);
    $pedido = mysqli_real_escape_string($link, $_POST['field7']);
    $autor = mysqli_real_escape_string($link, $_POST['field8']);
    if (!$portal) { 
        echo '<script type="text/javascript"> alert("Preencha todos os campos "); </script>';
        mysqli_close($link);
    } 

    $sql = "INSERT INTO pedidos (p_portal, p_datacri, p_datapub, p_titulo, p_keywords, p_hashtags, p_imageType, p_imageData, p_pedido, p_autor)
            VALUES('$portal', '$datacri', '$datapub', '$titulo', '$keyword', '$hashtags', '{$imageProperties['mime']}', '{$imgData}', '$pedido', '$autor')";
    if(mysqli_query($link, $sql)) {
        echo '<script type="text/javascript"> alert("Portal Criado"); </script>';
    } else{
        echo "ERRO: Não foi possivel executar o comando $sql. " . mysqli_error($link);
    }
} else {
    echo "ERROR: couldn't get image Data";
}

?>

......

暫無
暫無

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

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