图像不会通过PHP上传到本地服务器

时间:2013-06-26 15:18:38

标签: php sql image forms upload

我在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>

1 个答案:

答案 0 :(得分:3)

您需要将内容类型定义为multipart / form-data以包含文件上载。

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