0

我想上传视频,音频,图像,pdf,ppt,word文件,然后将它们保存到一个目录中......这是我的上传代码,.,,,没有错误但也没有输出......当我打开文件夹,里面没有图像文件……另外,如果你们告诉我应该如何上传 pdf、word 和视频文件,那将非常有帮助……

继承人我到目前为止:

这是 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";
}

提前谢谢:)

4

4 回答 4

1

你已经采取 $allowedExts = array("jpg", "jpeg", "gif", "png");

但是你想上传视频、音频、图片、pdf、ppt、word。所以首先编辑你的扩展列表如下

$allowedExts = array("jpg", "jpeg", "gif", "png","txt","doc","pdf","mp3");

添加您要上传的所有扩展代码似乎非常好,请检查您是否在所需文件夹中具有上传权限

于 2012-10-06T14:35:57.097 回答
1

看来您至少应该得到一个“无效文件错误”。所以有趣的是你在处理后没有得到任何输出。

我会推荐以下内容:

类似于 $allowedExts = array("jpg", "jpeg", "gif", "png"),我会对 mime-types 做同样的事情并做一个 in_array(type, collection)

这使得向白名单添加其他扩展和 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);

然而,我更喜欢检查我的日志,而不是在我的脚本中启用报告。

于 2012-10-06T14:48:46.267 回答
0

试试这个,你需要一个 return true 才能成功

if(!move_uploaded_file(move_uploaded_file($_FILES["uploadedfile"]["tmp_name"],
  "learningmaterial/" . $_FILES["uploadedfile"]["name"]))
    {
        echo "can't move file";
    }
于 2012-10-06T15:05:44.770 回答
0

我在使用 WinSCP 时遇到了同样的问题。我所要做的就是刷新服务器端,以便我可以看到新的上传。 在此处输入图像描述

于 2014-02-12T07:28:07.673 回答