- Home
- Categorie
- Coding e Sistemistica
- PHP
- Limiti per upload immagini
-
Limiti per upload immagini
Ciao, ho creato un form per caricare un immagine in una directory. Solo che è molto base, senza nessuna restrizione. Ecco il codice:
if (isset($_POST['submit']))
{
$validator = Validator::make(
array(
'title' => $_POST['title'],
'question' => $_POST['question'],
),
array(
'title' => 'required',
'question' => 'required',
)
);if ($validator->fails()) { $errors = $validator->messages(); } else { $random = rand(00000000,99999999); $filename = addslashes($random. '_' .$_FILES["img"]["name"]); $tmpFilename = $_FILES["img"]["tmp_name"]; $path = "http://www.giorgiotave.it/forum/images/" . $filename; if(is_uploaded_file($tmpFilename)){ // check if file is uploaded if(move_uploaded_file($tmpFilename, $path)){ // now move the uploaded file to path (directory) } } DB::table('questions')->insert( array( 'h_image' => escape($filename), 'h_title' => escape($_POST['title']), 'h_desc' => escape($_POST['question']), 'page_title' => escape($_POST['title']), 'user_id' => escape($_POST['userid']) ) ); return redirect_to('index.php'); }
}
Chiedo aiuto a voi per inserire restrizioni come il limite di grandezza, che vengano accettate solo immagini. Inoltre, sono tentato anche di fare in modo che l'immagine caricata venga spostata una versione originale in una cartella, mentre una di grandezza inferiore (con width e height impostati) in un altra.
Comunque, spero possiate aiutarmi, grazie!
-
Qui puoi trovare degli spunti (stackoverflow.com/questions/1249943/check-picture-file-type-and-size-before-file-upload-in-php), in particolare dal commento di Andrew Moore:
[PHP]
$filecheck = basename($_FILES['imagefile']['name']);$ext = strtolower(substr($filecheck, strrpos($filecheck, '.') + 1));if (!(($ext == "jpg" || $ext == "gif" || $ext == "png") && ($_FILES["imagefile"]["type"] == "image/jpeg" || $_FILES["imagefile"]["type"] == "image/gif" || $_FILES["imagefile"]["type"] == "image/png") && ($_FILES["imagefile"] < 2120000))){ echo "F2"; die();}[/PHP]