我想上传视频,音频,图片,pdf,ppt,word文件,然后将它们保存到目录中......这是我的上传代码,。,,,没有错误,但也没有输出。 ..当我打开文件夹时,里面没有图像文件...如果你们告诉我如何上传pdf,文字和视频文件,那将是非常有帮助的...
到目前为止我所拥有的:
这是add-material.php
<form id="form" method="post" action="add-material-action.php" enctype="multipart/form-data">
<label for="file">Upload Your File Here:</label><input type="file" name="uploadedfile" id="uploadedfile"/><br /><br />
<input class="mybutton" type="submit" name="Add Material" class="button" value="Add Material" />
因为我的表格相当大,所以我在这里粘贴了相关的代码行
这是add-material-action.php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["uploadedfile"]["name"]));
if (( ($_FILES["uploadedfile"]["type"] == "image/gif")
|| ($_FILES["uploadedfile"]["type"] == "image/jpeg")
|| ($_FILES["uploadedfile"]["type"] == "image/png")
|| ($_FILES["uploadedfile"]["type"] == "image/pjpeg"))
&& ($_FILES["uploadedfile"]["size"] < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["uploadedfile"]["error"] > 0)
{
echo "Return Code: " . $_FILES["uploadedfile"]["error"] . "<br />";
}
elseif (file_exists("learningmaterial/" . $_FILES["uploadedfile"]["name"]))
{
echo $_FILES["uploadedfile"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["uploadedfile"]["tmp_name"],
"learningmaterial/" . $_FILES["uploadedfile"]["name"]);
echo "Stored in: " . "learningmaterial/" . $_FILES["uploadedfile"]["name"];
}
}
else
{
echo "Invalid file";
}
预先thanx:)
答案 0 :(得分:1)
$allowedExts = array("jpg", "jpeg", "gif", "png");
但你想上传视频,音频,图片,pdf,ppt,word。 首先,编辑您的扩展名列表如下
$allowedExts = array("jpg", "jpeg", "gif", "png","txt","doc","pdf","mp3");
添加您要上传的所有扩展程序代码似乎完全没问题,请检查您是否拥有上传所需文件夹的权限
答案 1 :(得分:1)
看来你应该至少得到一个“无效文件错误”。所以有趣的是你在处理后没有得到任何输出。
我会推荐以下内容:
类似于$ allowedExts = array(“jpg”,“jpeg”,“gif”,“png”),我会为mime-types做同样的事情并做一个in_array(类型,集合)
这样可以轻松地向白名单中添加其他扩展和mime类型。
我还会打印特定的错误消息以便更有用
if (!in_array($mime, $mimeCollection)) {
echo "Invalid mime-type";
} else if (!in_array($ext, $extCollection)) {
echo "Invalid file extension";
} else if ($size > $max) {
echo "File is too large";
}
... additional checks
我还会启用错误报告,以查看是否有其他内容正在进行,因为您没有获得任何输出。
error_reporting(E_ALL ^ E_NOTICE);
然而,我更喜欢检查我的日志,而不是在我的脚本中启用报告。
答案 2 :(得分:0)
试试这个,你需要一个真正的成功回报
if(!move_uploaded_file(move_uploaded_file($_FILES["uploadedfile"]["tmp_name"],
"learningmaterial/" . $_FILES["uploadedfile"]["name"]))
{
echo "can't move file";
}
答案 3 :(得分:0)
我使用WinSCP遇到了同样的问题。 我所要做的只是刷新服务器端,以便我可以看到新上传的内容。