我正在为我的办公室建立一个简单的上传门户网站。我已成功对其进行编码,将上传的项目传递到名为/ uploads的文件夹中,但我想添加一个下拉列表,在多个子文件夹之间进行选择,以便人们可以更好地组织其中的内容。
这是我的HTML
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<select name="Folder">
<option value="OurPhoto">Our Photos</option>
<option value="StockPhoto">Stock Photos</option>
<option value="Video">Videos</option>
<option value="Document">Documents</option>
<option value="Other">Other</option>
</select>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
这是我的PHP for upload.php
if ($_FILES["file"]["error"] > 0) {
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else {
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("upload/" . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " already exists. ";
}
else {
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
我的子文件夹名为MCPhoto,StockPhoto,Video,Documents and Other。 我的PHP知识有点弱,所以我真的不知道从哪里开始..
答案 0 :(得分:1)
您需要从$_POST
变量中获取文件夹字段的值,并将其包含在您的上传代码中。
if (file_exists("upload/".$_POST["Folder"] . "/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_POST["Folder"] . "/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_POST["Folder"] . "/" . $_FILES["file"]["name"];
}
}
答案 1 :(得分:1)
您可以使用以下内容:
$folder = $_POST['Folder'];
// sanitise $folder
$location = 'upload/' . rtrim($folder, '/') . '/' . $_FILES['file']['name'];
if(file_exists($location)) {
echo $_FILES['file']['name'] . ' already exists.';
}
else {
move_uploaded_file($_FILES['file']['tmp_name'], $location);
echo 'Stored in: ' . $location;
}
在Folder
中使用之前,请确保$location
输入是安全的。
答案 2 :(得分:0)
此代码有太多安全漏洞。当我说你在尝试之前应该做更多的研究时,我想帮助你。
请至少阅读:http://blog.insicdesigns.com/2009/01/secure-file-upload-in-php-web-applications/
您可能希望聘请专业人员,因为您的服务器的安全性存在风险。
答案 3 :(得分:0)
这是你可以在这里做的..
由于您要将文件存储到您选择的子文件夹中,您需要先使用
获取子文件夹的名称 $_POST['folder']
或
$GLOBALS['_POST']['folder']
然后存储到像$ loc这样的变量,然后你可以用这种方式添加代码
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" .$loc."/". $_FILES["file"]["name"]);
这个网站很新,所以我不熟悉如何以良好的方式展示代码......
希望它能帮到你