2013-06-26 62 views
0

我很有點在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> 

謝謝大家

回答

0

你沒有搞清楚什麼,錯誤說,所有:不定義的函數getExtension,你需要執行它。您可以使用pathinfo函數來實現它:例如:

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

謝謝你解決我的錯誤:) –