ho fatto così:
Codice PHP:
if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['save'])) {
if ($_POST['titolo'] == NULL || $_POST['testo'] == NULL || $_POST['categoria'] == NULL || $_POST['sezione'] == NULL) {
echo 'Titolo, testo, sezione e categoria sono obbligatori';
} else {
if ($_POST['file'] != NULL) {
$img = uploadFile();
}
if ($img == "Errore nell'upload" || $img == "Tipo file non accettato" || $img == "File troppo grande") {
echo $img;
$img = '';
}
updateArt($_POST['titolo'], $_POST['testo'], $_POST['sezione'], $_POST['categoria'], $_POST['file'], $_POST['tags'], $_POST['pubblicato'], $_POST['id']);
// header('location: index.php');
}
}
nel form ci stanno varie textbox e poi c'è questa:
Codice PHP:
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" name="articoli" onsubmit="return valida();" enctype="multipart/form-data">
.....
<tr>
<td>Upload immagine:</td>
<td>
<input name="file" type="file" />
</td>
</tr>
il problema è che nn fa l'upload.
eppure nn eccede il limite massimo e il formato è accettato:
Codice PHP:
function uploadFile() {
$maxSize = 512000; //byte => 550KB
$acceptType = array(
'png' => 'image/png',
'jpeg' => 'image/jpeg',
'jpg' => 'image/jpeg',
'gif' => 'image/gif'
);
$cartella = "../uploads/";
if ($_FILES['file'] != "") {
$destinazione = $cartella . basename($_FILES['file']['name']);
if ($_FILES['file']['size'] <= $maxSize) {
if (in_array($_FILES['file']['type'], $acceptType)) {
if (move_uploaded_file($_FILES['file']['tmp_name'], $destinazione)) {
return $destinazione;
} else {
return "Errore nell'upload";
}
} else {
return "Tipo file non accettato";
}
} else {
return "File troppo grande";
}
}
}
il file è .jpg e di 52,kb.
la directory uploads ha permessi 777 e la dislocazione directory è così:
codice:
/
--admin
----form
-uploads
il form si trova dentro admin e uploads dentro la root del sito.