私は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>
みんな、ありがとう