我正在尝试创建一个文件共享网站,在那里我可以显示所有上传图像的链接。一旦用户上传了一个文件,他们就可以看到已经上传的文件,也可以上传另一个文件。然而,我目前有两个问题: 1.我不知道如何在用户上传图片后重新显示主上传页面。2.我不知道如何根据当前的文件动态创建链接。
下面是我到目前为止掌握的代码:
HTML/文件共享站点
<body>
<h2>File-Sharing Site</h2>
<h3>Upload file</h3>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
Search for file: <br />
<input type="file" name="file" id="file" />
<input type="submit" name="submit" value="Upload" />
</form>
</body>
</html><?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 800000)
&& in_array($extension, $allowedExts))
{
if($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_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 "Stored in: " . $_FILES["file"]["tmp_name"];
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";
}?>
发布于 2012-10-01 02:18:01
您可以将其添加到主页以显示上载的文件:
<?php
if ($handle = opendir('upload/')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo "$entry<br>";
}
}
closedir($handle);
}
?>当然,您必须重定向回主页,以查看文件列表,并可能上传更多文件。或者使用ajax上传文件,这样您就不会被迫重定向回去。
我使用现成的插件来实现这一切:http://blueimp.github.com/jQuery-File-Upload/
发布于 2012-09-30 23:02:48
1)使用标头函数header('Location: ... ');将用户重定向到主上载页。
2)您需要使用*sql解决方案来存储和显示文件链接。
2a)为所有上传的文件指定唯一的文件名(即md5($ file‘name ))
发布于 2012-10-01 18:59:18
您可以使用Ajax文件上传。用ajax上传文件,然后返回文件路径作为响应.然后将响应打印为页面上的链接(在某个div字段中.)
$.ajaxFileUpload
(
{
url:'upload_file.php',
secureuri:false,
fileElementId:'file',
dataType: 'json',
success: function (response)
{
$("#div_where_you_print_response").html(response)
},
error: function (data, status, e)
{
alert(e);
}
}
);https://stackoverflow.com/questions/12665840
复制相似问题