2013-06-26 155 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">