我正在开发一个功能强大的网站,用户可以将他们的视频上传到网站,视频会发送到服务器。它完美的工作没有问题。但我想以不同的方式制作下面的代码,当用户上传视频时,它必须通过创建新的文件夹目录(名称为用户名)存储到服务器中的新文件夹,并且我必须能够从服务器获取它将视频嵌入各自的个人资料中。 下面的片段通常用于通过在服务器中创建上传文件夹来上传(上传文件夹是手动创建的,我希望它以某种方式当用户上传视频时,必须在服务器中自动形成新的名称,用户名为在它上面)请帮助.....
video.php
----------
<form action="videophp.php" method="post" enctype="multipart/form-data">
<label for="file"><span>Filename:</span></label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Upload" />
</form>
videophp.php
-------------
<?php
$allowedExts = array("mp4", "flv","jpg","JPEG");
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if ((($_FILES["file"]["type"] == "video/mp4")
|| ($_FILES["file"]["type"] == "video/flv")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/JPEG")
)
&& ($_FILES["file"]["size"] > 2000000)
&& in_array($extension, $allowedExts))
{
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"];
}
}
}
else
{
echo "Invalid file";
}
?>
答案 0 :(得分:1)
这是您正在寻找的一部分:
$username = 'Max Mustermann'; // you'd have to get that from somewhere
$targetfolder = 'upload/'.$username;
if (!file_exists($targetfolder)) {
mkdir($targetfolder, 0777, true);
}
if (file_exists($targetfolder . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " already exists. ";
}
else {
move_uploaded_file($_FILES["file"]["tmp_name"],
$targetfolder . $_FILES["file"]["name"]);
echo "Stored in: " . $targetfolder . $_FILES["file"]["name"];
}
您仍需要向服务器发送用户名。 有了这个,您也可以在下次访问时访问。
BUT 我建议给文件夹和文件提供其他名称,并将它们存储在db中,并连接到用户的数据。通过这种方式,您可以更好地控制谁可以访问哪些文件(视频),您不必搜索文件系统(这比搜索n db要慢)。
答案 1 :(得分:0)
$uploaddir = 'uploads/';
$filename = basename($_FILES['media']['name']);
$raw = $uploaddir . $filename;
$_FILES['media']['tmp_name'];
if (move_uploaded_file($_FILES['media']['tmp_name'], $raw))
$url = "http://".$_SERVER['HTTP_HOST']."/newsapp/".$raw;