2015-07-24 4 views
0

У меня есть кнопка загрузки, при которой файл, выбранный пользователем, загружается в определенный каталог, когда пользователь нажимает кнопку загрузки. Кнопка загрузки вызывает файл upload.php.
У меня есть страница, на которой для одного вопроса можно заполнить максимум 5 вариантов ответа при создании викторины, а также загрузить звуковую саундтрек для каждой введенной опции.Инкремент рассчитывается каждый раз, когда файл вызывается в PHP


Снимок страницы enter image description here

upload.php

<?php 
$count=0; 

$count++; 

$target_dir = "Uploads/Question".$count."/Options/"; 
$target_file = "Uploads/Question".$count."/Options/".$count.".mp3"; //renames file as 1, 2, 3 etc. 
$uploadOk = 1; 
$audioFileType = pathinfo($target_file,PATHINFO_EXTENSION); 

// Check if file already exists 
if (file_exists($target_file)) { 
    echo "<br/>Sorry, file already exists."; 
    $uploadOk = 0; 
} 
// Check file size 
if ($_FILES["fileToUpload"]["size"] > 50000000) { 
    echo "<br/>Sorry, your file is too large."; 
    $uploadOk = 0; 
} 

//Allow certain file formats 
if($audioFileType != "avi" && $audioFileType != "mp3" && $audioFileType != "mp4" 
&& $audioFileType != "wma") { 
    echo "<br/>Only AVI, mp3, mp4 & WMA files are allowed."; 
    $uploadOk = 0; 
} 

// Check if $uploadOk is set to 0 by an error 
if ($uploadOk == 0) { 
    echo "<br/>Sorry, your file was not uploaded."; 
// if everything is ok, try to upload file 
} else { 
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
    } else { 
     echo "<br/>Sorry, there was an error uploading your file."; 
    } 
} 
?> 

Эта часть кода $target_file = "Uploads/Question".$count."/Options/".$count.".mp3"; предполагается сохранить файл как 1.mp3, и я хочу каждый раз увеличивайте 1 на 1, 2, 3 и т. д. Поскольку вы можете видеть, что счетчик установлен в 0 в начале самого файла. Мой вопрос будет, как я могу увеличивать счет каждый раз, когда вызывается файл upload.php?

Это было немного долго, поскольку было трудно объяснить. Спасибо, что пытались помочь.

+0

вы бы хранить что-то в базе данных или плоский файл и получить последнее значение перед увеличением на новое значение , –

+0

Из исследования я обнаружил, что самым простым способом было бы подсчитать количество файлов в самой директории. Любая помощь по этому поводу? –

+0

Ваш код не имеет возможности обрабатывать более одного загруженного файла за раз? Вы спрашиваете, как мне обрабатывать более одного файла, загружаемого в одно исполнение? – RiggsFolly

ответ

0

Простым способом увеличения счетчика является подсчет количества файлов, уже присутствующих в этом каталоге.

Обновлено upload.php

<?php 
$count=0; 

$count++; 


$i = 1; 
$dir = "Uploads/Question".$count."/Options/"; //count files in that directory 
if ($handle = opendir($dir)) { 
    while (($file = readdir($handle)) !== false){ 
     if (!in_array($file, array('.', '..')) && !is_dir($dir.$file)) 
      $i++; 
    } 
} 

$target_dir = "Uploads/Question".$count."/Options/"; 
$target_file = "Uploads/Question".$count."/Options/".$i.".mp3"; //renames file as 1, 2, 3 etc. 
$uploadOk = 1; 
$audioFileType = pathinfo($target_file,PATHINFO_EXTENSION); 

// Check if file already exists 
if (file_exists($target_file)) { 
    echo "<br/>Sorry, file already exists."; 
    $uploadOk = 0; 
} 
// Check file size 
if ($_FILES["fileToUpload"]["size"] > 50000000) { 
    echo "<br/>Sorry, your file is too large."; 
    $uploadOk = 0; 
} 

//Allow certain file formats 
if($audioFileType != "avi" && $audioFileType != "mp3" && $audioFileType != "mp4" 
&& $audioFileType != "wma") { 
    echo "<br/>Only AVI, mp3, mp4 & WMA files are allowed."; 
    $uploadOk = 0; 
} 

// Check if $uploadOk is set to 0 by an error 
if ($uploadOk == 0) { 
    echo "<br/>Sorry, your file was not uploaded."; 
// if everything is ok, try to upload file 
} else { 
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
    } else { 
     echo "<br/>Sorry, there was an error uploading your file."; 
    } 
} 
?> 

Папка: enter image description here

Смежные вопросы