使用class.upload.php编辑上传的图像


edit uploaded image with using class.upload.php

我用class.upload.php制作了一个简单的上传系统,在向数据库添加新内容时效果很好。但当我需要编辑我的条目时,我有问题。在编辑条目时,我不想编辑图像,但它将其发送为空白,如果我再次选择图像,它也将其发送给空白。这是我的密码。

可以解释我的问题。

<?php require_once("conn.php");
require_once ("class.upload.php");
$catid = $_POST['catid'];
$title = $_POST['title'];
$descc = $_POST['descc'];
$keyw = $_POST['keyw'];
$message = $_POST['message'];
$Image = $_FILES['Image'];
$randnum = rand();
$foo = new upload($Image);
$filee = './Image'; 
 if ($foo->uploaded) { 
 $foo->image_resize = true;
 $foo->file_new_name_body = $randnum;
 $foo->image_x = 550;
 $foo->image_y = 440;
 $foo->process($filee);
 if ($foo->processed) { 
 echo 'Image uploaded.';
 echo $foo->file_dst_name;
 $foo->clean();
 } else {
 echo 'Error. : ' . $foo->error;
 }
 }
$Image7 = $foo->file_dst_name;
    if($_GET[pass] == 1)
    {   
        if(!isset($_POST[catid]) || empty($_POST[catid])){
            $hata = "Required area.";
        }
        if(!isset($_POST[title]) || empty($_POST[title])){
            $hata = "Required area.";
        }
        if(!isset($_POST[descc]) || empty($_POST[descc])){
            $hata = "Required area.";
        }       
        if(!isset($_POST[keyw]) || empty($_POST[keyw])){
            $hata = "Required area.";
        }
        if(!isset($_POST[message]) || empty($_POST[message])){
            $hata = "Required area.";
        }
        if(!$hata){
            mysql_query("UPDATE product SET
                catid='$_POST[catid]',
                title='$_POST[title]',
                descc='$_POST[descc]',
                keyw='$_POST[keyw]',
                message='$_POST[message]',
                Image='$_POST[Image]'
                WHERE id='$_POST[id]'
                "); 
            $mesaj = "OK!";
        }
    }
    $sonuc = mysql_query("select * from product WHERE id='$_GET[product]'");
    $edit = mysql_fetch_array($sonuc);
    $sonuc1 = mysql_query("select * from category");
    $edit1 = mysql_fetch_array($sonuc1);
?>

尝试更改更新查询

在Image='$_POST[Image]'

带有Image='$Image7'

Fatih您可以在sql查询中使用变量(即$saved_image_name)而不是$POST[image]。如果已上载数据库字段的else旧值,请将此变量设置为新名称。

...
...
$foo = new upload($Image);
$filee = './Image'; 
$saved_image_name = " Image "; // name of db field.
 if ($foo->uploaded) { 
 $foo->image_resize = true;
 $foo->file_new_name_body = $randnum;
 $foo->image_x = 550;
 $foo->image_y = 440;
 $foo->process($filee);
 if ($foo->processed) { 
 echo 'Image uploaded.';
 echo $foo->file_dst_name;
 // Note the quotes
 $saved_image_name = " '$foo->file_dst_name' ";
 $foo->clean();
 } else {
 echo 'Error. : ' . $foo->error;
 }
 }
// no use anymore $Image7 = $foo->file_dst_name;
...
...
if(!$hata){
            mysql_query("UPDATE product SET
                catid='$_POST[catid]',
                title='$_POST[title]',
                descc='$_POST[descc]',
                keyw='$_POST[keyw]',
                message='$_POST[message]',
                Image= $saved_image_name // note the quotes
                WHERE id='$_POST[id]'
                ");