文件上传问题

时间:2012-10-06 14:27:51

标签: php html5

我想上传视频,音频,图片,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:)

4 个答案:

答案 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遇到了同样的问题。 我所要做的只是刷新服务器端,以便我可以看到新上传的内容。 enter image description here