Buonasera,mi scuso per il titolo un po' superficiale, adesso mi spiego meglio.
Ho un form per l'upload multiplo di immagini e mi interessa salvare in un array il path di ogni immagine per inserirlo successivamente nel database.
Queste immagini sono le pagine di un catalogo e purtroppo, per necessità devo suddividere la creazione di un catalogo in vari step.
Nel primo step chiedo all' utente il nome del catalogo e l' anno di produzione.
Nel secondo step l' utente sceglie le immagini che faranno parte di quel catalogo, e verranno caricate su una cartella con il nome del catalogo.
Ho deciso di passare i path tramite gli input hidden tra un form e l'altro, ma il problema è che non riesco a dinamizzare tutto dato che riceverò N immagini.
Ho pensato quindi di assegnare ad ogni input un nome numerico che si auto-incrementi da solo per ogni immagine, così poi posso richiamarlo con un ciclo.
Ok, in teoria ho trovato la soluzione, ma in pratica non riesco a scrivere il codice XD
Qualche Santo può aiutarmi?
index
Codice PHP:
<?
if($action == "add"){
?>
<form method="POST" action="?page=manage_catalog&action=add_step2">
<table align="center" id="CustomerAdd" cellspacing="0" cellpadding="0">
<tr style="background-image: url('./img/bg-head.png'); color: #fff; font-weight: bold; height: 25px;">
<td colspan="2">
Crea Catalogo
</td>
</tr>
<tr>
<td width="40%">
Nome
</td>
<td>
<input type="text" name="cat_name">
</td>
</tr>
<tr>
<td>
Anno
</td>
<td>
<select name="cat_year">
<?
$current_year=date('Y');
for($i=$current_year;$i>=1990;$i--){
?>
<option><? echo $i; ?></option>
<?
}
?>
</select>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="make_cat" value="Avanti →">
</td>
</tr>
</table>
</form>
<?
}elseif($action=="add_step2"){
$nome=$_POST['cat_name'];
$anno=$_POST['cat_year'];
?>
<form id="frm" method="post" class="stringi" enctype="multipart/form-data" action='catalog/processImage.php'>
<div id='imgLoading' style='display:none'>
<img src="loading.gif" alt="Uploading...."/>
</div>
<div id='ingLoadButton'>
<input type="file" name="deskImg" id="deskImg" />
</div>
<input type="hidden" name="cat_name" value="<?echo $nome;?>">
</form>
<form method="POST" class="stringi" action="?page=manage_catalog&action=add_step3">
<div id='displayImg'>
</div>
<input type="hidden" name="cat_name" value="<?echo $nome;?>">
<input type="hidden" name="cat_year" value="<?echo $anno;?>">
<?echo $nome." ".$anno;?>
<input type="submit" value="Crea Catalogo">
</form>
<?
}elseif($action=="add_step3"){
$nome=$_POST['cat_name'];
$anno=$_POST['cat_year'];
$path1=$_POST['path1'];
echo $nome." ".$anno." ".$path1;
}
?>
processImage.php
Codice PHP:
<?php
$nome=$_POST['cat_name'];
$path = $nome."/";
if(!is_dir($path)){
mkdir($path."/", 0777);
$file=$path."/index.php";
$apro=fopen($file,"w");
fwrite($apro," ");
fclose($apro);
}
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
$valid_formats = array("jpg", "png", "gif", "bmp","jpeg","PNG","JPG","JPEG","GIF","BMP");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
$name = $_FILES['deskImg']['name'];
$size = $_FILES['deskImg']['size'];
if(strlen($name)){
$ext = getExtension($name);
if(in_array($ext,$valid_formats)){
if($size<(1024*1024*5)){
$actual_image_name = time().substr(str_replace(" ", "_", $ext), 5).".".$ext;
$tmp = $_FILES['deskImg']['tmp_name'];
if(move_uploaded_file($tmp, $path.$actual_image_name)){
echo "<img src='catalog/".$path.$actual_image_name."' class='displayImg' alt='".$actual_image_name."'>";
$n_p="catalog/".$path.$actual_image_name;
echo "<input type='hidden' name='path1' value='".$n_p."'>";
}else
echo "Non hai i permessi per creare cartelle.";
}else
echo "Errore: dimensione massima consentita 5MB.";
}else
echo "Estensione non valida.";
}else
echo "Seleziona un immagine da caricare.";
exit;
}
?>