- Home
- Categorie
- Coding e Sistemistica
- PHP
- inserimento di più immagini
-
inserimento di più immagini
Ciao a tutti, mi trovo davanti un codice non scritto da me,
anche perchè a dire il vero non avrei saputo farlo.
si tratta di upload immagini
il codice come stava scritto funzionava correttamente, solo che mi dava la possibilità di inserire un immagine per volta, io non ho fatto altro che inserire un ciclo for per far si che i campi dove raccogliere le immagine diventassero 4, adesso il problema lo incontro quando procedo all'inserimento in quanto a funzionare è sempre uno, lo so che bisoga fare qualcosa dove effettua l'inserimento, ma sono sincero non so dove ettere le mani, chiedo un vostro aiutodi seguito lo script
[PHP]
<?php
class maxUpload{
var $uploadLocation;function maxUpload(){ $this->uploadLocation = getcwd().DIRECTORY_SEPARATOR; } function setUploadLocation($dir){ $this->uploadLocation = $dir; } function showUploadForm($msg='',$error=''){
?>
<div id="container">
<div id="header"><div id="header_left"></div>
<div id="header_main">Importa Immagine</div><div id="header_right"></div></div>
<div id="content">
<?php
if ($msg != ''){
echo '<p class="msg">'.$msg.'</p>';
} else if ($error != ''){
echo '<p class="emsg">'.$error.'</p>';
}
?>
<form action="" method="post" enctype="multipart/form-data" >
<?php
for($i=1; $i<5; $i++)
{
echo"<center>
<label>File:
<input name='myfile' type='file' size='30' />
</label>";
}
?>
<label>
<input type="submit" name="submitBtn" class="sbtn" value="Upload" />
</label>
</center>
</form>
</div>
<div id="footer"></div>
</div>
<?php
}
function uploadFile(){
if (!isset($_POST['submitBtn'])){
$this->showUploadForm();
} else {
$msg = '';
$error = '';//Check destination directory if (!file_exists($this->uploadLocation)){ $error = "Directory inesistente!"; } else if (!is_writeable($this->uploadLocation)) { $error = "Impossibile scrivere in tale directory!"; } else { $target_path = $this->uploadLocation . basename( $_FILES['myfile']['name']); if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) { $msg = basename( $_FILES['myfile']['name']). " Immagine caricata con successo!"; } else{ $error = "Operazione non riuscita!"; } } $this->showUploadForm($msg,$error); } }
}
?>
[/PHP]grazie per l'aiuto
ciao da danny
-
ciao danny1975
facendo così non fai altro che creare 4 input box uguali (myfile)
dovresti chiamarli differentemente, ma di conseguenza dovresti pure variare il codice di upload per riconoscere queste nuove entità[php]echo"<center>
<label>File:
<input name='myfile".$i."' type='file' size='30' />
</label>";[/php]
-
ciao. grazie per il consiglio,
ciò che hai detto è difficile farlo?
potresti darmi una mano?grazie da danny
-
Credo bisogni ciclare questo pezzo facendo passare l'$i come prima
[php]$target_path = $this->uploadLocation . basename( $_FILES['myfile']['name']);
if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
$msg = basename( $_FILES['myfile']['name']).
" Immagine caricata con successo!";[/php]
-
ciao, niente da fare, non riesco ad uscirne
chi mi può aiutare?
grazie da danny
-
Prova con
for($x=1;$x<5;$x++){
echo"<center>
<label>File:
<input name='".$i."' type='file' size='30' />
</label>";
}
$array_files=$_POST;
$num=count($array_files);//conto il numero di campi nell'array
for($i=0;$i<$num;$i++)
{
$target_path = $this->uploadLocation . basename( $_FILES*['name']);
if(@move_uploaded_file($_FILES*['tmp_name'], $target_path)) {
$msg = basename( $_FILES*['name']).
" Immagine caricata con successo!";
}
-
ciao, questa è la pagina identata correttamente con il tuo suggerimento
[PHP]
<?php
class maxUpload
{
var $uploadLocation;
function maxUpload()
{
$this->uploadLocation = getcwd().DIRECTORY_SEPARATOR;
}
function setUploadLocation($dir)
{
$this->uploadLocation = $dir;
}
function showUploadForm($msg='',$error='')
{
?>
<div id="container">
<div id="header"><div id="header_left"></div>
<div id="header_main">Importa Immagine</div><div id="header_right"></div></div>
<div id="content">
<?php
if ($msg != '')
{
echo '<p class="msg">'.$msg.'</p>';
}
else if ($error != '')
{
echo '<p class="emsg">'.$error.'</p>';
}
?>
<form action="" method="post" enctype="multipart/form-data" >
<?php
for($x=1; $x<5; $x++)
{
echo"<center>
<label>File:
<input name='".$i."' type='file' size='30' />
</label>";
}
?>
<label>
<input type="submit" name="submitBtn" class="sbtn" value="Upload" />
</label>
</center>
</form>
</div>
<div id="footer"></div>
</div>
<?php
}
function uploadFile()
{
if (!isset($_POST['submitBtn']))
{
$this->showUploadForm();
}
else
{
$msg = '';
$error = '';
//Check destination directory
if (!file_exists($this->uploadLocation))
{
$error = "Directory inesistente!";
}
else if (!is_writeable($this->uploadLocation))
{
$error = "Impossibile scrivere in tale directory!";
}
else
{
$array_files=$_POST;
$num=count($array_files);//conto il numero di campi nell'array
for($i=1; $i<$num); $i++)
{
$target_path = $this->uploadLocation . basename( $_FILES[myfile*]['name']);
if(@move_uploaded_file($_FILES[myfile*]['tmp_name'],$target_path))
{
$msg = basename( $_FILES[myfile*]['name']).
" Immagine caricata con successo!";
}
}
else
{
$error = "Operazione non riuscita!";
}
}
$this->showUploadForm($msg,$error);
}
}
}
?>
[/PHP]mi da questo errore
**Parse error**: parse error, expecting `';'' in **c:\programmi\easyphp1-8\www\follidea\gestione\upload\maxUpload.class.php** on line **74**
linea 74 e dove inizia il ciclo for con $i
visto cosi sembra corretto
-
Modifica il codice in alto cosi:
<form action="" method="post" enctype="multipart/form-data" >
<?php
for($x=1; $x<5; $x++)
{
echo"<center>
<label>File:
<input name='".$i."' type='file' size='30' />
</label>";
}
?>
<label>
<input type="submit" class="sbtn" value="Upload" />
</label>
</center>
</form>E il ciclo for cosi:
<?php$num=count($_POST);//conto il numero di campi nell'array for($i=1;$i<$num;$i++) {
echo $_POST*."<br>\n";
}
?>Avevo messo un altra parentesi XD:
for($i=1;$i<$num);$i++)