PDA

View Full Version : Form upload multiplo di file


Xidius
01-01-2006, 19:36
salve ragazzi sto realizzando un form di invio di piu file contemporaneamente;

ho creato prima di tutto quello per l'invio di un solo file; ecco il codice ( il primo file consente di selezionare il file da inviare e il secondo crea una directory e ci mette dentro quel file; )


echo"
<br /><br />
<form enctype=\"multipart/form-data\" action=\"upload.php?isbn=$query5\" method=\"POST\">
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"3000000\">
Invia questo file:<BR />
<input name=\"userfile\" type=\"file\">
<input type=\"submit\" value=\"Invia File\">
</form>
";



<HTML>
<HEAD></HEAD>
<BODY>

<?php
//percorso della cartella dove mettere i file caricati
$ISBN=$_GET['isbn'];

mkdir("/Program Files/Apache Group/Apache2/htdocs/" . $ISBN, 0700);

$ISBN_var = (string) $ISBN;
$uploaddir = '/Program Files/Apache Group/Apache2/htdocs/' . $ISBN_var;

//Recupero il percorso temporaneo del file
$userfile_tmp = $_FILES['userfile']['tmp_name'];

//recupero il nome originale del file caricato
$userfile_name = $_FILES['userfile']['name'];

print "<pre>";
//copio il file dalla locazione temporanea alla mia cartella upload
if (move_uploaded_file($userfile_tmp, $uploaddir . '/' . $userfile_name))
{
//Se l'operazione è andata a buon fine...
print "File inviato con successo. Ecco alcune informazioni:\n";
print_r($_FILES);
}
else
{
//Se l'operazione è fallita...
print "Upload NON valido! Alcune informazioni:\n";
print_r($_FILES);
}
print "</pre>";
?>
</BODY>
</HTML>


ecco la versione ad upload multipli


echo"
<br /><br />
<form enctype=\"multipart/form-data\" action=\"upload.php?isbn=$query5\" method=\"POST\">
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"3000000\">
Invia questo file:<BR />
<input name=\"userfile\" type=\"file\">
<BR />
<input name=\"userfile\" type=\"file\">
<BR />
<input type=\"submit\" value=\"Invia File\">
</form>
";




<HTML>
<HEAD></HEAD>
<BODY>

<?php

//percorso della cartella dove mettere i file caricati
$ISBN=$_GET['isbn'];

mkdir("/Program Files/Apache Group/Apache2/htdocs/" . $ISBN, 0700);

$ISBN_var = (string) $ISBN;
$uploaddir = '/Program Files/Apache Group/Apache2/htdocs/' . $ISBN_var;

foreach($_FILES['userfile']['name'] as $chiave=>$error){

if ($error == UPLOAD_ERR_OK) {

//Recupero il percorso temporaneo del file
$userfile_tmp = $_FILES['userfile']['tmp_name'][$chiave];

//recupero il nome originale del file caricato
$userfile_name = $_FILES['userfile']['name'][$chiave];

print "<pre>";
//copio il file dalla locazione temporanea alla mia cartella upload
if (move_uploaded_file($userfile_tmp, $uploaddir . '/' . $userfile_name))
{
//Se l'operazione è andata a buon fine...
print "File inviato con successo ";
}
else
{
//Se l'operazione è fallita...
print "Upload NON valido! ";
}
}
}
?>
</BODY>
</HTML>



gli errori che da sono i seguenti:


Warning: mkdir() [function.mkdir]: File exists in C:\Program Files\Apache Group\Apache2\htdocs\formprova\upload.php on line 10

Warning: Invalid argument supplied for foreach() in C:\Program Files\Apache Group\Apache2\htdocs\formprova\upload.php on line 15

soprattutto il primo errore mi colpisce dato che mi dice che il file esiste mentre nn c'è nessun file in quella cartella
grazie dell'aiuto

Xidius
02-01-2006, 01:44
misteri della vita, riavviando apache e cambiando una cosa per le stringhe, ora funziona tutto.... bah
ora mi dovrò dedicare a far visualizzare un'anteprima di alcune immagini dentro una cartella, penso che il php nn lo faccia, qui occorre il javascript vero?