2016-08-16 4 views
0

Ich benutze Count-Funktion von PHP, um zu zählen, wie viele Dateien beim Hochladen der Dateien Datei ausgewählt werden. Abhängig von der Anzahl möchte ich einige Bedingungen anwenden. Wenn keine Dateien ausgewählt wurden, habe ich den Zählwert überprüft, der Wert ist 1, und wenn ich eine einzelne Datei ausgewählt habe, wird 1 angezeigt, nach der Auswahl von zwei Dateien wird die Zählung als 2 angezeigt. Ich finde den folgenden Code, den ich geschrieben habe. Vielen Dank für alle suggsetions ..Count-Funktion zeigt als Standardwert 1

$form['upload_fieldset']['file'] = array(
    '#type' => 'file', 
    '#title' => 'Choose a File', 
    '#name' => 'files[]', 
    '#attributes' => array('multiple' => 'multiple'), 

); 
function xxx_submit_file_upload($form, &$form_state) { 
    $num_files = count($_FILES['files']['name']); 

echo '<pre>';print_r($num_files);exit;//Here I am getting count as 1. if no files were chosen also. 
+0

versuchen 'count ($ _ FILES [ 'Dateien'])' oder 'count ($ _ FILES)' oder 'print_r ($ _ FILES)' – devpro

+0

haben Sie es testen? ? ? – devpro

+0

Gerade habe ich Count ($ _ FILES ['Datei s']) getestet, dies wird das richtige Ergebnis geben. Darf ich wissen Was ist das Problem mit meinem Code? – Suraj

Antwort

0

Auch wenn Sie als 1.

Sie können prüfen, keine Datei haben, ist $_FILES['files']['name'] auf '' so dass es zählen, wenn eine Datei oder nicht hochgeladen und dann zählen:

$upload_error = $_FILES['files']['error'][0]; 

if ($upload_error === UPLOAD_ERR_NO_FILE) { 
    $num_files = 0; 
} else { 
    $num_files = count($_FILES['files']['name']); 
} 
1

Unten Code funktioniert für mich. Du kannst es versuchen.

$num_files = 0; 
foreach ($_FILES['files']['name'] as $name) { 
    if (!empty($name)) 
     $num_files++; 
} 

if($num_files == 0){ 
    echo "No file selected"; 
}else{ 
    echo $num_files." files uploaded."; 
}