PHP文件上传表单不工作

PHP文件上传表单不工作,php,forms,file,upload,Php,Forms,File,Upload,我在我制作的另一个网站上使用过这段代码,它工作得非常好,所以我真的很困惑为什么它不能正常工作。我唯一更改的是文件要移动到的目录,但这些文件从未上载。我把所有的东西都检查了三遍,看起来都很好。代码全部执行,没有错误,所有信息都正确输入数据库,唯一的问题是文件没有上传。我要发疯了,想让它工作!请帮忙 HTML格式: <p> <h2>Add News</h2><br /> REQUIRED *<br /><br /> <fo

我在我制作的另一个网站上使用过这段代码,它工作得非常好,所以我真的很困惑为什么它不能正常工作。我唯一更改的是文件要移动到的目录,但这些文件从未上载。我把所有的东西都检查了三遍,看起来都很好。代码全部执行,没有错误,所有信息都正确输入数据库,唯一的问题是文件没有上传。我要发疯了,想让它工作!请帮忙

HTML格式:

<p>
<h2>Add News</h2><br />
REQUIRED *<br /><br />
<form enctype="multipart/form-data" action='addnews2.php' method='post' onsubmit="chose.value = uploadForm()" name="newsform">
<p>Headline:  *
<br>
<input name="title" type="text" size="75">
<br />
<br/>

  News: *<br>
<textarea name="text" cols="75" rows="10" width="200"></textarea><br /><br />
Image File:   
<br>
<input type="file" name="filetoupload" id="filetoupload"><br/><br />

  <input type="submit" name="choose" value="Submit" />
</p>
</form>
</p>

添加新闻
必需*

标题:*


新闻:*


图像文件:


处理页面:

$date=date("l F d, Y");

$title=stripslashes($_POST['title']);
$text=stripslashes($_POST['text']);

if (($_FILES["filetoupload"]["type"] == "image/gif")
|| ($_FILES["filetoupload"]["type"] == "image/jpeg")
|| ($_FILES["filetoupload"]["type"] == "image/pjpeg")
|| ($_FILES["filetoupload"]["type"] == "image/png")
|| ($_FILES["filetoupload"]["type"] == "image/jpg"))
  {
  if ($_FILES["filetoupload"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["filetoupload"]["error"] . "<br />";
    }
    else
      {
            if (file_exists("images/news/" . $_FILES["filetoupload"]["name"]))
      {
      echo $_FILES["filetoupload"]["name"] . " already exists. ";
      }
      move_uploaded_file($_FILES["filetoupload"]["tmp_name"],
      "images/news/" . $_FILES["filetoupload"]["name"]);
      }
    }



$image = "images/news/".$_FILES['filetoupload']['name'];


if($title==""||$text==""){
    die("You need to fill in all details");
}


connect_to_db();
$query="insert into news (date, title, text, image) values ('".$date."','".mysql_real_escape_string($title)."','".mysql_real_escape_string($text)."','".$image."')";
$result=mysql_query($query);

if(mysql_affected_rows()==1){
header("Location:index.php?page=Admin&news=added");
}
else{
    die("there was a problem");
}
mysql_close();
$date=日期(“l F d,Y”);
$title=stripslashes($_POST['title']);
$text=stripslashes($_POST['text']);
如果($_文件[“filetoupload”][“type”]=“image/gif”)
||($_文件[“filetoupload”][“type”]=“image/jpeg”)
||($_文件[“filetoupload”][“type”]=“image/pjpeg”)
||($_文件[“filetoupload”][“type”]=“image/png”)
||($_文件[“filetoupload”][“type”]=“image/jpg”))
{
如果($_文件[“filetoupload”][“error”]>0)
{
echo“返回代码:”.$\u文件[“filetoupload”][“error”]。“
”; } 其他的 { 如果(文件存在(“图像/新闻/”$\u文件[“filetoupload”][“name”])) { echo$\u文件[“filetoupload”][“name”]”已存在。“; } 移动上传的文件($文件[“filetoupload”][“tmp\u名称”], “images/news/”$_文件[“filetoupload”][“name”]); } } $image=“images/news/”$\u文件['filetoupload']['name']; 如果($title==“”| |$text==“”){ 死亡(“你需要填写所有细节”); } 将_连接到_db(); $query=“插入新闻(日期、标题、文本、图像)值(“$date.”、“.mysql\u real\u escape\u string($title)。”、“.mysql\u real\u escape\u string($text)。”、“$image.”); $result=mysql\u query($query); 如果(mysql\u受影响的\u行()==1){ 标题(“Location:index.php?page=Admin&news=added”); } 否则{ 死(“出了问题”); } mysql_close();
看起来您缺少else语句,代码格式设置可能已关闭并导致混淆:

  if (file_exists("images/news/" . $_FILES["filetoupload"]["name"]))
  {
      echo $_FILES["filetoupload"]["name"] . " already exists. ";
  }else {
      move_uploaded_file($_FILES["filetoupload"]["tmp_name"],
  "images/news/" . $_FILES["filetoupload"]["name"]);
  } 
试试看。如果不是这样,请检查您的权限等,并确保文件没有被上传,只是不在您预期的位置

只要一点信息,我会在你做图像检查之前先做
$title
$text
检查。因为如果两者都为空,您可能不想将图像上载到站点。在插入之前,还应在图像路径中转义文件名:

$image = "images/news/".mysql_real_escape_string($_FILES['filetoupload']['name']);

因为这也可能容易注射

看起来您缺少else语句,代码格式设置可能已关闭并导致混淆:

  if (file_exists("images/news/" . $_FILES["filetoupload"]["name"]))
  {
      echo $_FILES["filetoupload"]["name"] . " already exists. ";
  }else {
      move_uploaded_file($_FILES["filetoupload"]["tmp_name"],
  "images/news/" . $_FILES["filetoupload"]["name"]);
  } 
试试看。如果不是这样,请检查您的权限等,并确保文件没有被上传,只是不在您预期的位置

只要一点信息,我会在你做图像检查之前先做
$title
$text
检查。因为如果两者都为空,您可能不想将图像上载到站点。在插入之前,还应在图像路径中转义文件名:

$image = "images/news/".mysql_real_escape_string($_FILES['filetoupload']['name']);

因为这也可能容易注射

您是否检查了要上载到的目录的权限?您的move_uploaded_文件代码始终在执行您需要将其放入else部分为了跟踪问题,您应该在不包含数据库信息的情况下构建一个新的temp php文件,然后收集并回显所有变量的信息,以确保您的位置、路径、,构造的数据是有效的。还可以启用错误报告()。此外,如上所述,最终副本的目标位置可能没有适当的文件权限(写访问权限)。您是否检查了要上载到的目录的权限?您的move_uploaded_文件代码始终在执行您需要将其放入else部分以跟踪问题,您应该在没有数据库信息的情况下构造一个新的temp-php文件,然后收集并回显所有变量的信息,以确保您的位置、路径和构造的数据是有效的。还可以启用错误报告()。另外,如上所述,最终副本的目标位置可能没有适当的文件权限(写访问)。感谢您的快速响应。不幸的是,这并没有解决问题:/I我刚刚意识到问题是什么。我没有授予文件夹写入权限。我真是个笨蛋!但是你的回应引发了一个非常感激的想法:)谢谢你的迅速回应。不幸的是,这并没有解决问题:/I我刚刚意识到问题是什么。我没有授予文件夹写入权限。我真是个笨蛋!但你的回答引发了一个非常感激的想法:)