0

以下のコードを使用して、データベース内の画像とカテゴリを更新しています。コードはカテゴリ名を更新しますが、画像は更新しません。エラーが表示されます

未定義のインデックス: ピクチャ イン C:\xampp\htdocs\project1\catalog\editcat.php on line 44

44行目は次のとおりです。

  $img=$_FILES['picture']['name'];

PHP:

<?php

    $id=$_POST['categoryid'];
    $name=$_POST['categoryname'];
    $img=$_FILES['picture']['name'];
    $target="upload";
    $qry=mysql_query("UPDATE category SET categoryname='$name' WHERE category_id=$id");



    if(!$qry)
    {
        die("Query Failed: ". mysql_error());
}?>
<?php
    if($img)
    {
        $image= addslashes(file_get_contents($_FILES['picture']['name']));
        $image_name= addslashes($_FILES['picture']['name']);

        move_uploaded_file($_FILES["picture"]["name"],$target."/" . $_FILES["picture"]["name"]);

        $location=$target."/". $_FILES["picture"]["name"];
        //$name=$_POST['categoryname']; 
        $qry=mysql_query("UPDATE category SET uploadedfile='$location' WHERE category_id=$id");
    }

    if(!$qry)
    {
        die("Query Failed: ". mysql_error());
    }
 ?>

HTML:

<tr>
    <td align="right" class="label" width="40%""><font color="blue">Category ID:</font>        </td>
    <td align ="left" width="60%"><input type="text" name="categoryid" id="categoryid"   value="<?php echo $entries['category_id']; ?>" /></td>
</tr> 
<tr>
    <td align="right" class="label" width="40%""><font color="blue">Category Name:</font> </td>
    <td align ="left" width="60%"><input type="text" name="categoryname" id="categoryname" value="<?php echo $entries['categoryname']; ?>" /></td>
</tr> 
<tr><td align ="right" class="label" width="40%"><font color="blue">Upload File:  </font></td>
    <td align="left" width ="60%">  <input type="file" name="picture" ></td></tr>
<tr><td class="label" align="right">&nbsp;</td><td align="left"><input  type="submit" name="Submit" value="Upload" id="button1" /></td>
</tr>
4

2 に答える 2

0

コードの一部の行を変更してください:

//$image= addslashes(file_get_contents($_FILES['picture']['name']));

上記の変数は使用されていません

この行を変更します

move_uploaded_file($_FILES["picture"]["name"],$target."/" . $_FILES["picture"]["name"]);

move_uploaded_file($_FILES["picture"]["tmp_name"],$target."/" . $image_name);

サーバーにアップロードされていないファイルを使用していない場合は、フォームに属性を追加していることを確認してください。

enctype="multipart/form-data"

ここにコードがあります

 if($img)
 {
   $image_name= addslashes($_FILES['picture']['name']);

    move_uploaded_file($_FILES["picture"]["tmp_name"],$target."/" . $image_name);

    $location=$target."/". $image_name;
    //$name=$_POST['categoryname'];
$qry=mysql_query("UPDATE category SET uploadedfile='$location' WHERE category_id=$id");
}

if(!$qry)
{
  die("Query Failed: ". mysql_error());
}
?>
于 2013-08-10T07:37:33.913 に答える
0

次の解決策を試してください。その背後にある理由は、場所を割り当てる前にファイルを移動することです。クリアするかも$_FILES["picture"]["name"]

$imgしたがって、私が提案するのは、投稿の後に割り当てることです。この変数はどの段階でもクリアされないため、この変数を使用してください。次に、ファイルを移動するときに$_FILES['picture']['tmp_name'].

 move_uploaded_file($_FILES['picture']['tmp_name'],$target."/" . $img);
 $location=$target."/". $img;
于 2013-08-10T07:37:53.040 に答える