如何在上传文件时收到通知?

时间:2015-04-28 12:17:55

标签: php notifications

我正在构建一个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>

1 个答案:

答案 0 :(得分:1)

您的代码仅将所有文件上传到一个文件夹中,但是根据您的问题我假设每个用户都应该拥有自己的文件夹,并且每个用户都可以将文件上传到其他人的文件夹中。 如果我做对了,那么你的代码应该有这些改变: HTTP:

java.net.SocketTimeoutException: failed to connect to /192.168.0.53 (port 3000) after 5000ms

PHP:

<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>

最后一件事 - 发送消息的功能。最简单的方法是以与用户名(或其他存储的用户名)相同的方式命名文件夹,尤其是那些在会话中也用于登录的文件夹。然后$ foldername = $ username,这可以帮到你很多。

<?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';
        }
    }
?>

对于HTML,您可能应该让用户只选择现有的文件夹,而不是让他们上传到他们想要的任何文件夹。所以一些文件夹列表而不是文本输入。 最好的方法是获取所有用户名的mysql结果,使其对应的文件夹,并在原始表单内的下拉菜单中生成这些文件的列表。

简历:

  • 用户将拥有自己的文件夹
  • 每个用户都可以上传到 任何人的文件夹,当他上传到其他任何人的文件夹时,它都会 发送消息