用于编辑和更改图像的 php 代码

标签 php mysql

编辑包含图像的数据库记录时如何替换图像文件?

这是我的代码,用于显示要编辑的图像:

</tr>
          <tr valign="baseline">
            <td align="right" nowrap="nowrap" class="style4">&nbsp;</td>
            <td><img src="<?php echo $row_Member_info['image1']; ?>" width="100%" /><p align="center"><strong>Image 1</strong></td>
          </tr>

这是我试图添加的内容,以用另一个图像替换图像文件,但不起作用:

<tr valign="baseline">
            <td align="right" nowrap="nowrap" class="style4">Change Image1:</td>
             <td colspan="2" class="style1">Choose a file to upload: <input name="image1" type="file" /><br></td>
            <td class="style1">&nbsp;</td>
       </tr>

这是我用于更新记录的代码,除了替换图像之外,该代码还可以工作。新图像不会写入数据库,也不会保存到“uploads/”文件夹中。此外,不会生成任何错误代码:

// This displayes the selected row from the previous page
$colname_Member_info = "-1";
if (isset($_GET['recordID'])) {
$colname_Member_info = $_GET['recordID'];
}
mysql_select_db(strato11_members);
$query_Member_info = sprintf("SELECT * FROM Member_info WHERE id = %s", GetSQLValueString($colname_Member_info, "text"));
$Member_info = mysql_query($query_Member_info) or die(mysql_error());
$row_Member_info = mysql_fetch_assoc($Member_info);
$totalRows_Member_info = mysql_num_rows($Member_info);

// Form1 starts here to update the selected record
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

// added by Jim to set image formats

     function GetImageExtension($imagetype) {
        if(empty($imagetype)) return false;
        switch($imagetype) {
            case 'image/bmp': return '.bmp';
            case 'image/gif': return '.gif';
            case 'image/jpeg': return '.jpg';
            case 'image/png': return '.png';
            default: return false;
        }
    } 

// added by JK to process image1
$target = "uploads/"; 
    if (isset($_FILES["image1"]["tmp_name"]) && !empty($_FILES["image1"]["tmp_name"])) {
        $temp_name=$_FILES["image1"]["tmp_name"];
        $imgtype=$_FILES["image1"]["type"];
        $ext= GetImageExtension($imgtype);

//This is the directory where images will be saved 
        if (!$ext) die("Upload file format is not allowed");
        $target1 = $target . basename( $_FILES['image1']['name']);
        if(move_uploaded_file($temp_name, $target1)) {
        } else {
            exit("Error While uploading image on the server"); 
        }
    }

// JK code ends

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$updateSQL = sprintf("UPDATE `Member_info` SET name=%s, rank=%s, departed=%s, service=%, lodd=%s, veteran=%s, branch=%s, decorated=%s, comments=%s, image1=%, cemetery=%s WHERE id=%s",                
                   GetSQLValueString($_POST['name'], "text"),
                   GetSQLValueString($_POST['rank'], "text"),
                   GetSQLValueString($_POST['departed'], "text"),
                   GetSQLValueString($_POST['service'], "text"),
                   GetSQLValueString($_POST['lodd'], "text"),
                   GetSQLValueString($_POST['veteran'], "text"),
                   GetSQLValueString($_POST['branch'], "text"),
                   GetSQLValueString($_POST['decorated'], "text"),
                   GetSQLValueString($_POST['comments'], "text"),
                   GetSQLValueString($_POST['cemetery'], "text"),
                   GetSQLValueString($target1,"text"),
                   GetSQLValueString($_POST['id'], "text"));



// code for entering it into a database.
    mysql_select_db(strato11_members);
    $Result1 = mysql_query($updateSQL) or die(mysql_error());

$updateGoTo = "view_members.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}

最佳答案

在您的 form 标记中,您是否使用了 enctype="multipart/form-data"。因为这是我们使用input type='file'时程序员最忘记使用的东西。 因此,首先检查您是否使用了 form 标记中的 enctype,如果没有,请使用它并希望它会上传您的文件。

关于用于编辑和更改图像的 php 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48479502/

相关文章:

php - 运行存储在 OneDrive 上的 php 文件

PHP 和 MySQL 与 Highchart

mysql - 如何获取mysql中两个表的列名?

PHP根据大于/小于JSON输出结果

php - 从两个不同的表中获取 MySQL 值到一个数组中?

php - 由于 PHP,带有数字的 MySQL LIKE 子句失败

mysql - 仅当语句为 true 时才插入

MySQL 左连接中的 IF 语句

javascript - 在 CK Editor 中访问选项卡数据

php - mysqli (multi)_query - 如何在循环中执行和执行?