2015-04-28 2 views
-1

Я создаю приложение php. Это платформа, где пользователи могут обмениваться файлами.Как получить уведомление при загрузке файла?

Я начал с того, что пользователи загрузили файл в указанный каталог на локальном сервере с использованием php, теперь я хотел бы знать, как каждый из них мог получить уведомление, когда новый файл будет загружен в их каталог.

Вот простая форма и PHP код, который я использовал для этого

<?php 
    if(isset($_POST['submit'])){ 
     $name  = $_FILES['file']['name']; 
     $temp_name = $_FILES['file']['tmp_name']; 
     if(isset($name)){ 
      if(!empty($name)){  
       $location = 'soumissions/';  
       if(move_uploaded_file($temp_name, $location.$name)){ 
        echo 'uploaded'; 
       } 
      }  
     }else { 
      echo 'please uploaded'; 
     } 
    } 
?> 
<html> 
<head> 
</head> 
<body> 
    <form action="upload.php" method="post" enctype="multipart/form-data"> 
     <input type="file" name="file" id="file"><br><br> 
     <input type="submit" value="submit" name="submit"> 
    </form> 
</body> 
</html> 
+0

Вы могли бы используйте cronjob, который отправит уведомления и сохранит эти уведомления в базе данных, чтобы вы не отправляли одно и то же уведомление дважды. – machineaddict

+0

Вы можете использовать функцию 'is_uploaded_file()' – Krishna38

+0

, так что скажите нам, что вы один из тех парней, которые задают вопрос, получает ответ, который работает, а затем взлетает, ничего не говоря и не принимающего ответ; Да, я знаю твой тип. –

ответ

1

Ваш код загружает все файлы в только одну папку, но из вашего вопроса, я полагаю, что каждый пользователь должен иметь свою собственную папку и каждый пользователь может загрузить файл в чужую папку. Если бы я получил это право, то ваш код должен иметь следующие изменения: Http:

<form action="upload.php" method="post" enctype="multipart/form-data"> 
<input type="file" name="file" id="file"><br> 
<input type="text" name="foldername" id="foldername"><br> 
<input type="submit" value="submit" name="submit"> 
</form> 

PHP:

<?php 
    if(isset($_POST['file'])){ 
     $name  = $_FILES['file']['name']; 
     $temp_name = $_FILES['file']['tmp_name']; 
     if (isset ($_POST['foldername'])) 
      { $foldername = strip_tags($_POST['foldername']);} 
     else 
      { $foldername = $_SESSION['user_name']; } /* Make the uploader's folder as default, normally are sessions used to login, so I used it in my example */ 
     if(isset($name)){ 
      if(!empty($name)){  
       $location = 'soumissions/' . $foldername . '/';  
       if(move_uploaded_file($temp_name, $location.$name)){ 
        echo 'uploaded'; 
        send_message($foldername); /* Call function to message the folder owner where the file was uploaded */ 
       } 
      }  
     }else { 
      echo 'please uploaded'; 
     } 
    } 
?> 

И последняя вещь - функция, чтобы отправить сообщение. Самый простой способ - иметь папки, названные так же, как и имена пользователей (или другие сохраненные имена пользователей), особенно те, которые у вас также есть в сеансе, который используется для входа в систему. Тогда $ foldername = $ username, что может вам очень помочь.

function send_message ($user) 
{ if ($_SESSION['user_name'] != $user) //to just send messages to other users 
    { /* do whatever you want here, you can send e-mail or anything else. As parameter of recipient, use the name of folder that it was uploaded to, assuming it is named same as some user's credentials, for example usernames*/} 
} 

Также для HTML, вы, вероятно, должны позволить пользователям выбирать из уже существующих папок только, не позволить им загружать в любую папку они хотят. Итак, некоторый список папок вместо ввода текста. Лучший способ для этого - извлечь mysql из всех имен пользователей, сделать соответствующие ему папки и сгенерировать их список в выпадающем меню внутри оригинальной формы.

Резюме:

  • Пользователи будут иметь свои собственные папки
  • Каждый пользователь может загрузить в папку чьего, когда он будет загружать никому чужой папке, он будет ОТП.СООБЩЕНИЕ
Смежные вопросы