Mmmmmm, como te decia, era solo a modo de ejemplo, lo tenes que adaptar a tu necesidad.
Revisandolo, encontre un par de errores de tipeo, ya que no los probe, aqui te va con algunas correcciones:
Código PHP:
<?php
if(isset($_POST['up'])){
$result = 'mal';
if($_FILES['csv']['name']!=''){ // VERIFICAMOS SI TRAE ALGO
if(is_uploaded_file($_FILES['csv']['tmp_name'])){ // SE REALIZO EL UPLOAD?
$nombre_temporal = 'CSV_'.time().'.csv'; // CREAMOS UN NOMBRE CON LA MARCA DE TIEMPO
if(copy($_FILES['csv']['tmp_name'],'temp/'.$nombre_temporal)){ // LO COPIAMOS AL DIRECTORIO TEMP
$tmpSQL = array(); // DECLARAMOS UN ARRAY EN DONDE ESTARAN LOS DATOS PARA DESPUES COMPLETAR EL SQL
$fp = fopen('temp/'.$nombre_temporal);
$linea = fgetcsv($fp,1000,','); // LEEMOS LA PRIMERA LINEA
$tmpSQL = array();
while(($linea = fgetcsv($fp,1000,','))!==FALSE){
if($linea[0]!='' && $linea[1]!=''){
$tmpSQL[] = "('".$linea[0]."','".$linea[1]."')";
}
}
fclose($fp);
if(count($tmpSQL)>0){
$SQL = "INSERT INTO personas(nom,dni) VALUES".implode(',',$tmpSQL);
die($SQL); // PUSE ESTE DIE, PARA VERIFICAR SI ESTA BIEN LA CONSULTA SQL
$r = mysql_query($SQL);
if($r) $result = 'ok';
}
}
}
}
// REDIRECCIONAMOS HACIA ESTA MISMA PAGINA CON LA VARIABLE DE RESULTADO
header('Location: '.$_SERVER['PHP_SELF'].'?result='.$result);exit();
}
?>
<form name="frm" action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST" enctype="multipart/form-data">
<label><input name="csv" type="file" /> Archivo CSV</label>
<input type="hidden" name="up" />
<input type="submit" value="Cargar..." />
</form>
Cuando te diga que un error se encuentra en la linea X y tu codigo tiene menos lineas que la que dice, de cajon es que esta mal cerrado alguna llave (if, while, switch, etc).
Saludos!