Originariamente inviato da mircov
Hai provato ad usare un'immagine non caricata via php?
Praticamente lo scopo dell'esercizio era proprio quello di fare l'upload di immagini via php.
A questo punto provo a postarti l'intero codice, così capisci megllio quel che intendo.
Se vuoi darci un'occhiata ti ringrazio, altrimenti continuerò a cercare l'errore da solo senza problemi
.
1° file -->upload_image.html
codice:
<html>
<head>
<title>Upload your pic to our site!</title>
<style type="text/css">
<!--
td {vertical-align:top;}
-->
</style>
</head>
<body>
<form action="check_image.php" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>Your Username</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>Upload Image*</td>
<td><input type="file" name="uploadfile"></td>
</tr>
<tr>
<td colspan="2">* Acceptable image formats include: GIF, JPG/JPEG and PNG.</td>
</tr>
<tr>
<td>Image Caption
</td>
<td><input type="text" name="caption" /></td>
</tr>
<tr>
<td colspan="2" style="tect-align: center"><input type="submit" name="submit" value="Upload" /></td>
</tr>
</table>
</form>
</body>
</html>
2° file --> check_image.php
codice:
<?php
$db=mysql_connect('localhost','aaa','aaapass') or die ('Unable to connect. Check your connection parameteres.');
mysql_select_db('moviesite',$db) or die (mysql_error($db));
//scegliere il percorso in modo che corrisponda a quello della cartella images in uso
$dir='C:/xampp/htdocs/images';
//si assicura che il caricamento sia avvenuto correttamente
if ($_FILES['uploadfile']['error'] != UPLOAD_ERR_OK) {
switch($_FILES['uploadfile']['error']) {
case UPLOAD_ERR_INI_SIZE:
die('The uploaded file exceeds the upload_max_filesize directtive ' .'in php.ini.');
break;
case UPLOAD_ERR_FORM_SIZE:
die('The uploaded file exceeds the MAX_FILE_SIZE directive that ' . 'was specified in the HTML form.');
break;
case UPLOAD_ERR_PARTIAL:
die('The uploaded file was only partially uploaded.');
break;
case UPLOAD_ERR_NO_FILE:
die('No file was uploaded.');
break;
case UPLOAD_ERR_NO_TMP_DIR:
die('The server is missing a temporary folder.');
break;
case UPLOAD_ERR_CANT_WRITE:
die('The server failed to write the uploaded file to disk.');
break;
case UPLOAD_ERR_EXTENSION:
die('File upload stopped by extension.');
break;
}
}
//recupera le informazioni sull'immagine appena caricata
$image_caption=$_POST['caption'];
$image_username=$_POST['username'];
$image_data=date('Y-m-d');
list($width, $height, $type, $attr) = getimagesize($_FILES['uploadfile']['tmp_name']);
//si assicura che il file caricato sia effettivamente un tipo di immagine supportato
switch($type) {
case IMAGETYPE_GIF:
$image=imagecreatefromgif($_FILES['uploadfile']['tmp_name']) or die ('The file you uploaded was not a supported filetype.');
$ext= '.gif';
break;
case IMAGETYPE_JPEG:
$image=imagecreatefromgif($_FILES['uploadfile']['tmp_name']) or die ('The file you uploaded was not a supported filetype.');
$ext= '.jpg';
break;
case IMAGETYPE_PNG:
$image=imagecreatefromgif($_FILES['uploadfile']['tmp_name']) or die ('The file you uploaded was not a supported filetype.');
$ext= '.png';
break;
default:
die('The file you uploaded was not a supported filetype.');
}
//inserisce nella tabella images le informazioni
$query= 'INSERT INTO images (image_caption, image_username, image_date)
VALUES ("' .$image_caption. '", "' .$image_username. '", "' .$image_date. '")';
$result=mysql_query($query, $db) or die(mysql_error($db));
//recupera il valore image_id che MySQL ha generato automaticamente quando abbiamo inserito le informazioni
//sull'immagine nella tabella il nuovo record
$last_id=mysql_insert_id();
//dato che id è univoco lo si può utilizzare anche come nome dell'immagine per assicurarsi che l'immagine non sovrascriva
//altre immagini esistenti
$imagename=$last_id .$ext;
//aggiorna la tabella images col nome finale dell'immagine
$query='UPDATE images
SET image_filename = "' .$imagename. '";
WHERE image_id = ' .$last_id;
$result=mysql_query($query,$db) or die (mysql_error($db));
//salva l'immagine nella sua destinazione finale
switch($type) {
case IMAGETYPE_GIF:
imagegif($image, $dir .'/'.$imagename);
break;
case IMAGETYPE_JPEG:
imagejpeg($image, $dir .'/'.$imagename,100);
break;
case IMAGETYPE_PNG:
imagepng($image, $dir .'/'.$imagename);
break;
}
imagedestroy($image);
?>
<html>
<head>
<title>Here is your pic!</title>
</head>
<body>
<h1>So how does it feel to be famous?</h1>
Here is the picture you just uploaded to our servers:</p>
[img]images/<?php echo $imagename; ?>[/img]
<table>
<tr><td>Image Saved as: </td><td><?php echo $imagename ?></td></tr>
<tr><td>Image Type: </td><td><?php echo $ext ?></td></tr>
<tr><td>Height: </td><td><?php echo $height ?></td></tr>
<tr><td>Width: </td><td><?php echo $width ?></td></tr>
<tr><td>Upload Date: </td><td><?php echo $image_date ?></td></tr>
</table>
</body>
</html>