Pagina 1 di 1

Problema inserimento controllo su multiupload....

Inviato: 16/04/2014, 11:11
da pollat
Ciao a tutti,
ho un problema con uno script multiupload, in pratica devo inserire il controllo di @file gi' esistente (per evitare sovrascrizioni di file)...

il form per l-upload è questo:
[HTML]
<form action="" method="post" enctype="multipart/form-data" onSubmit="showSpindle()" method="POST">
<input type="file" name="files[]" multiple="multiple">
<input type="submit" value="Upload">
</form>
[/HTML]

mentre lo script per l-upload è:
[PHP]
<?php


$valid_formats = array("jpg", "png", "gif", "zip", "bmp", "mp3" );
$max_file_size = 1024*10000; //10000 kb
$path = "nomecartella/"; // Upload directory
$count = 0;

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to execute all files
foreach ($_FILES['files']['name'] as $f => $name) {
if ($_FILES['files']['error'][$f] == 4) {
continue; // Skip file if any error found
}
if ($_FILES['files']['error'][$f] == 0) {
if ($_FILES['files']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name)) {
$count++; // Number of successfully uploaded files
}
}
}
}
}
?>[/PHP]


ho provato ad inserire:
[PHP]
if (file_exists("nomecartella/" . $_FILES["files"]["name"])){
$message[] = "$name è già esistente, cambiare nome al file";
continue; // Skip invalid file formats[/PHP]


ma qualsiasi file tenti di caricare mi sovrascrive il file quindi non va.... perchèèèèèèè?

Re: Problema inserimento controllo su multiupload....

Inviato: 28/04/2014, 22:42
da MattiaPiccinini
prima di tutto metti un echo "errore"; exit; al posto di $message[] = "$name è già esistente, cambiare nome al file"; per verificare che effettivamente passa all'interno dell'if.

Devi inserirle il tuo if secondo fra
foreach ($_FILES['files']['name'] as $f => $name) {
e
if ($_FILES['files']['error'][$f] == 4) {
probabilmente.


Fai un echo di $_FILES["files"]["name"] e guarda cosa esce può darsi che non sia il nome del file vero e proprio....