-2

ファイルをアップロードする必要があるphpを使用して登録フォームを開発していますが、アップロードしていません

$firstname=$_REQUEST['firstname'];
$lastname=$_REQUEST['lastname'];
$username=$_REQUEST['username'];
$password=$_REQUEST['password'];
$email=$_REQUEST['email'];
$Image=basename($_FILES['file']['name']);
$Image=str_replace(' ','|',$Image);

if($firstname && $lastname && $username && $email)
{
  require 'dbconnect.php';
  $query="select * from members where email='$email'";
  $result=mysql_query($query);
  $exists=mysql_num_rows($result);
  if($exists>0)
  {
    $message=array("message"=>"email already existed");
    echo json_encode($message);
  }
  else
  {
    if($Image)
    { 
      $Image=date("YmdHis").".jpg";    
      $target_path="userimages/".$Image;
      move_uploaded_file($_FILES["file"]["tmp_name"],$target_path);
      $query="INSERT INTO `members` 
        (`username`, `firstname`, `lastname`, `email`, `password`, `image`)  VALUES 
        ('$username', '$firstname', '$lastname', '$email', '$password',  '$Image')";
    }
    else
    {
      $query="INSERT INTO `members` (`username`, `firstname`, `lastname`, `email`, `password`)  VALUES 
       ('$username', '$firstname', '$lastname', '$email', '$password')";
    }
    $result=mysql_query($query);
  }
}

htmlコードは

<html>
<form action="register.php" method="post" enctype="multipart/form-data">
<div>firstname<input type="text" name="firstname"></div>
<div>lastname<input type="text" name="lastname"></div>
<div>username<input type="text" name="username"></div>
<div>password<input type="text" name="password"></div>
<div>email<input type="text" name="email"></div>
<div>image<input type="file" name="file"></div>
<div><input type="submit" name="submit"></div>
</form>
</html>

これで私は画像をアップロードしますが、サーバーにはアップロードされず、このelse条件ではデータベースにもアップロードされません

私を助けてください

4

2 に答える 2

2

<form>タグにenctype="multipart/form-data"属性があることを確認してください

于 2012-06-25T19:15:51.547 に答える
0

書き込もうとしているフォルダーの権限を確認してください。画像がアップロードされず、move_uploaded_file失敗した場合、行はデータベースにまったく挿入されません。

比較のために、ファイルをサーバーにアップロードするために使用するアプリのコードを次に示します。

if ((($_FILES["avatar"]["type"] == "image/gif")
    || ($_FILES["avatar"]["type"] == "image/jpeg")
    || ($_FILES["avatar"]["type"] == "image/pjpeg")
    || ($_FILES["avatar"]["type"] == "image/png"))
    && ($_FILES["avatar"]["size"] < 200000))
{
    if ($_FILES["avatar"]["error"] > 0)
    {
        $error =  "Return Code: " . $_FILES["avatar"]["error"] . "<br />";
    }
    else
    {
        $fname = time() . '-' . $formData['username'] .$_FILES["avatar"]["name"];
        $fname = str_replace(" ", "_", $fname);
        if (file_exists("/myserverdir/images/avatars/" . $fname))
        {
            $fname = time() . '-' . $formData['username'] .$_FILES["avatar"]["name"];
            $fname = str_replace(" ", "_", $fname);
        }
        move_uploaded_file($_FILES["avatar"]["tmp_name"], "/myserverdir/images/avatars/" . $fname);
    }
}
else if (!file_exists($_FILES['avatar']['tmp_name']) || !is_uploaded_file($_FILES['avatar']['tmp_name']))
{
    $fname = 'default_avatar.jpg';
}
else
{
    $error = "Invalid file";
}

私のフォームは次のようになります。

<form method="post" action="myaction.php" enctype="multipart/form-data">
    <input type="file" name="avatar" />
    <input type="text" name="username" />
</form>
于 2012-06-25T19:14:59.557 に答える