come nn detto.
ho notato un grosso problema sull'assegnazione dei nomi delle immagini.
Codice PHP:
// form di caricamento
<form action="check_image.php" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>Upload: </td>
</tr>
<tr>
<td><input type="file" name="file[]" /></td>
</tr>
<tr>
<td><input type="file" name="file[]" /></td>
</tr>
<tr>
<td>Caption: </td>
</tr>
<tr>
<td><input type="text" name="caption" /></td>
</tr>
<tr>
<td>Category: </td>
</tr>
<tr>
<td>
<?php
include_once 'config.php';
$query = "select * from category order by title asc";
$result = mysql_query($query) or die(mysql_error($link));
echo '<select name="category">';
echo '<option value="javascript:void(0)">Scegli la categoria</option>';
while ($riga = mysql_fetch_array($result)) {
echo "<option value=" . $riga['title'] . ">" . $riga['title'] . "</option>";
}
echo '</select>';
echo '
';
?>
</td>
</tr>
<tr>
<td><input type="submit" name="upload" value="Upload" /></td>
</tr>
</table>
</form>
Codice PHP:
<?php
include_once 'link.html';
include_once 'config.php';
$maxSize = 500; //massima dimensione dei file in kilobyte
$acceptType = array(//tipi di file accettati, in questo caso solo immagini
'png' => 'image/png',
'jpe' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpg' => 'image/jpeg',
'gif' => 'image/gif',
'bmp' => 'image/bmp',
'ico' => 'image/vnd.microsoft.icon',
);
$cartella = "images/"; //cartella dove vengono caricati i file nel server
$image_caption = $_POST['caption'];
$image_category = $_POST['category'];
$image_date = date('Y-m-d');
function file_extension($filename) {
$path_info = pathinfo($filename);
return $path_info['extension'];
}
function singleUpload($i, $cartella, $maxSize, $acceptType) {
if ($_FILES['file']['name'][$i] != "") {
$destinazione = $cartella . mysql_insert_id() . "_" . $_POST['category'] . "." . file_extension(basename($_FILES['file']['name'][$i]));
if ($_FILES['file']['size'][$i] <= $maxSize * 1024) {// da levare appena il resto funziona
if (in_array($_FILES['file']['type'][$i], $acceptType)) {
if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $destinazione)) {
return "File caricato con successo!";
} else {
return "Errore nell'upload del file";
}
} else {
return "Tipo di file non accettato!";
}
} else {
return "Dimensione del file troppo grande, massima dimensione accettata: " . $maxSize . " kilobyte";
}
} elseif (isset($_POST['upload'])) {
return "Nessun file inserito!";
}
}
for ($i = 0; $i < count($_FILES['file']['name']); $i++) {
echo "Risultato file " . ($i + 1) . ": " . singleUpload($i, $cartella, $maxSize, $acceptType) . "
";
$query = 'insert into images (image_caption,image_date,image_category) values ("' . $image_caption . '","' . $image_date . '","' . $image_category . '")';
$result = mysql_query($query, $db) or die(mysql_error($db));
}
?>
mi salva le immagini e mi scrive i dati giusti sul db.
il problema è invece nell'assegnamento del nome.
dovrebbe essere così:
id-dell'ultimo-record-inserito_nome-categoria_estensione.
invece mi da gli indici sballati:
il primo comincia con zero.
se cambio categoria ricomincia da 1, invece dovrebbe continuare nel conteggio.
insomma fa casino con gli indici e nn capisco perchè!