2013-06-26 111 views
0

我很有點在PHP上,我試圖開發一個圖像上傳形式與描述到我的本地服務器。圖像不會上傳到本地服務器通過PHP

當我嘗試提交時,除了圖像值以外,所有值都輸入到數據庫表中,並且不會將任何圖像上載到本地服務器文件夾。

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"; 
       } 

形式

<form method="post" name="form3" action="<?php echo $editFormAction; ?>" > 
    <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

您的錯誤日誌是否有更多的細節,您的服務器配置是否允許文件上傳? –

+0

我總是試圖插入一個沒有錯誤的圖像,而我的服務器確實允許圖像上傳 –

+0

服務器軟件的名稱以及它在哪個操作系統上運行? –

回答

3

你需要定義內容類型的multipart/form-data的包含文件上傳。

<form method="post" name="form3" action="<?php echo $editFormAction; ?>" enctype="multipart/form-data">