我正在构建一个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 :(得分: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结果,使其对应的文件夹,并在原始表单内的下拉菜单中生成这些文件的列表。
简历: