0

画像をアップロードしようとしているこのフォームがありますが、ページを「更新」するたびに通常の状態に戻り、「ProfilesImages」フォルダーに何もアップロードされません。

<?php
if(isset($_POST['update'])){
    $ProfileImage = $_FILES['ProfileImage']['name'];
    $Fname = clean_text($_POST['Fname']);
    $Lname = clean_text($_POST['Lname']);
    $Uemail = $_POST['Remail'];
    $Uwebsite = $_POST['website'];
    $Ugender = clean_text($_POST['select']);
    $Ubirth = (int)$_POST['birth'];
    $UWork = clean_text($_POST['company']);
    $Uabout = clean_text($_POST['aboutMe']);
    $Uhobby = clean_text($_POST['hobby']);
    $Uprivatie = $_POST['radio'];
    $target = "includes/ProfilesImages/";
    $target = $target . basename ($_FILES['ProfileImage']['name']);
    $updateUserData = "UPDATE loginaccess SET
        profile_image='".$ProfileImage."',
        FUname = '".$Fname."',
        LUname = '".$Lname."',
        Email = '".$Uemail."',
        Website = '".$Uwebsite."',
        gender = '".$Ugender."',
        birth = '".$Ubirth."',
        work = '".$UWork."',
        about = '".$Uabout."',
        hobby = '".$Uhobby."',
        privatie = '".$Uprivatie."' where Email='".$_SESSION['email']."' AND active=1";
    if(move_uploaded_file($_FILES['ProfileImage']['tmp_name'], $target))
    {
            echo "<p>The image you have attached was uploaded successfully</p>";
    }
    else
    {
            echo " <p><strong>Notes</strong> : no image was attached to the registration form..! </p>";
    }
    $updateUserDataResults= $db->query($updateUserData) or die("$db->error");
    if($updateUserDataResults){
            header("Location:index.php?cat=user&learn_id=1");
    }
}
?>

助けてください...

4

2 に答える 2

4

フォームに fileupload enctype を必ず設定してください

<form action="index.php" method="post" enctype="multipart/form-data">

そうしないと、ファイルはアップロードされません

于 2012-06-20T12:23:57.190 に答える
0

ここで行っていることは、イメージ名を sql にアップロードすることであり、このコードについて私が理解していることから、イメージ ファイルをフォルダーにまったくアップロードしていないと思います。次のコードを試して、イメージ ファイルを必要なフォルダー (この場合はアップロード フォルダー) にアップロードします。

//if a replacement file is selected
//delete old file from filesystem
$sql2 = "Select item_image From Items Where item_id = '".$_POST['item_id']."'";
$stmt2 = $dbh->prepare($sql2);
    $stmt2->execute();
$result = $stmt2->fetchAll();
$file = strval($result[0]["item_image"]);
unlink($file);

//Uploads new picture file to filesystem
if ((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/pjpeg")
    || ($_FILES["file"]["type"] == "image/jpg")
    || ($_FILES["file"]["type"] == "image/png"))
    && ($_FILES["file"]["size"] < 20000000)){
if ($_FILES["file"]["error"] > 0){
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
                                  }//if
else{
    if (file_exists("upload/" . $_FILES["file"]["name"])){
         echo "<strong>That file is already on our database. Please choose a different file     or rename the file that was just rejected and resubmit your order.</strong>";}//if
    else{
        move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]  ["name"]);
        echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
    echo "uploaded new picture to filesystem" . "<br />";

名前やファイルに固有のものではありませんが、調べてみるとうまくいくはずです。おそらく、更新する古いファイルを削除するためにも使用する必要があります。

于 2012-06-20T12:36:18.057 に答える