簡體   English   中英

圖片上傳無效

[英]Image upload doesn't work

我在PHP上有點菜鳥,而且我正嘗試將圖像上傳到本地服務器。 有一個錯誤,我無法弄清楚為什么不起作用。

提交所有數據后,SQL表中的所有字段(圖像字段除外)均被填充。

我究竟做錯了什么?

PHP腳本

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form3")) {
  $insertSQL = sprintf("INSERT INTO paintings (id_album, `desc`) VALUES (%s, %s)",
                       GetSQLValueString($_POST['id_album'], "int"),
                       GetSQLValueString($_POST['desc'], "text"),
                       GetSQLValueString($_FILES['image']['name'], "text"));

  mysql_select_db($database_connection, $connection);
  $Result1 = mysql_query($insertSQL, $connection) or die(mysql_error());

define ("MAX_SIZE","1024"); 
     //Guarda na variavél $image o nome completo da imagem (nome+extensão)
                $image = $_FILES['image']['name'];

                //Verifica se existe alguma imagem para ser importada
                if($image)//Existe uma imagem para ser importada
                {
                        //Retira os elementos "/"
                        $filename = stripslashes($_FILES['image']['name']);

                        //Verifica qual a extensão do ficheiro
                        $extension = getExtension($filename);

                        //Coloca todos os caracteres da extensão com letra minuscula
                        $extension = strtolower($extension);

                        //Verifica os formatos de imagem que podem ser importados
                        if (($extension != "jpg") && ($extension != "png") && ($extension != "gif"))//Formato diferente dos permitidos 
                        {
                                //print error message
                                echo "<strong>Imagem:</strong> Este formato não pode ser importado! Utilize o formato jpg ou gif";
                        }
                        else//Formato permitido
                        {
                                //Verifica qual o tamanho da imagem seleccionada
                                $size=filesize($_FILES['image']['tmp_name']);

                                //Verifica se o tamanho é superior a 100kb
                                if ($size > MAX_SIZE*1024)//tamanho superior
                                {
                                        echo "A imagem nao pode execer o tamanho de 1Mb";
                                }
                                else//tamanho inferior
                                {
                                        //Gera um nome para a imagem
                                        $image_name=time().'.'.$extension;

                                        //Directoria para a qual a imagem será enviada
                                        $newname="../images/paintings/".$image_name;

                                        //Efectua o upload da imagem para a directoria
                                        $copied = copy($_FILES['image']['tmp_name'], $newname);

                                                //Verifica se o upload foi efectuado com sucesso
                                                if ($copied) //Upload bem sucessido
                                                {
                                                        echo "Upload da imagem foi efectuado com sucesso";

                                                }
                                                else//Upload mal sucessido
                                                {
                                                        echo "Não foi possivél efectuar o upload da imagem";
                                                }
                                }
                        }
                }
                else//Não existe nenhuma imagem para ser importada 
                {
                        echo "Seleccione uma imagem";
                }

  $insertGoTo = "paintings.php?op=sucesso";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

的HTML

<form method="post" name="form3" action="<?php echo $editFormAction; ?>" enctype="multipart/form-data" >
  <table align="center">
    <tr valign="baseline">
        <td><input name="image" type="file"></td>
    </tr>
    <tr valign="baseline">
      <td>Description<br/><input type="text" name="desc" value=""Name", Type, Size, Year" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td><input type="submit" value="Submit" class="submitbutton"></td>
    </tr>
  </table>
  <input type="hidden" name="id_album" value="<?php echo $_GET['ida']; ?>">
  <input type="hidden" name="MM_insert" value="form3">
</form>

感謝大家

您不必弄清楚什么,該錯誤說明了所有問題:函數getExtension未定義,您需要實現它。 您可以使用pathinfo函數實現它,例如:

function getExtension($filename){
    return pathinfo($filename, PATHINFO_EXTENSION);
}

暫無
暫無

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

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