php上传图片的编辑条目

时间:2012-06-18 10:22:41

标签: php mysql file-upload ezsql

只是我能想象的一个基本的,但对我来说,我正在努力:)

我已经创建了这个推荐脚本,除了我去更新条目时工作正常。所有数据都在那里,这些数据是在为条目上传的图像之外提交的。

我正在使用EzSql和Mysql。

代码中无法正常工作的部分:

<? if($_GET['action'] != 'edit') { ?>
    Add a new testimonial:  
<? }else{ ?>
    Update testimonial: 
<?
        $sql = "SELECT * from testimonials where id=".$_GET['tid'];
        $testimonialsData = $dbEze->get_row($sql);

        $update_company = $testimonialsData->company;
        $update_company_url = $testimonialsData->company_url;
        $update_content = $testimonialsData->content;
        $update_contentby_name = $testimonialsData->contentby_name;
        $update_contentby_position = $testimonialsData->contentby_position;
        $update_contentby_rating = $testimonialsData->rating;
        $update_logo = $testimonialsData->logo;
        $update_image = $testimonialsData->image;
        $update_twitter = $testimonialsData->twitter;

    } ?>

<form  enctype="multipart/form-data" action="testadmin?action=insert" method="post">
    <p>Company:
<input type="text" name="company" size="20" value="<?=$update_company?>" />

      Website: 
      <input type="text" name="company_url" size="20" value="<?=$update_company_url?>" />
      <br />
      <br>
      Name: 
      <input type="text" name="contentby_name" size="20" value="<?=$update_contentby_name?>" />
       Job Title: 
       <input type="text" name="contentby_position" size="20" value="<?=$update_contentby_position?>" />
      <br />
      <br>
      Rating: <input type="text" name="rating" size="20" value="<?=$update_contentby_rating?>" />
      Twitter ID: <input type="text" name="twitter" size="20" value="<?=$update_twitter?>" />
      <br />
      <br />
       <br>
      Testimonial: 
      <textarea name="content" rows="4" cols="35"><?=$update_content?>
    </textarea>
  </p>
    <p>Company Logo:
<input name="logo" type="file" size="20" value="<?=$update_logo?>" /> 
      <br />
      Product Photo:
<input name="image" type="file" size="20" value="<?=$update_logo?>" />
  </p>
    <p>

      <? if($_GET['action'] == 'insert' || $_GET['action'] == 'delete') { ?>
      <input type="hidden" name="insert" value="1" />
      <a onclick="jQuery(this).closest('form').submit()" class="btn add">Add <span class="helper"></span></a>
      <? }
    if($_GET['action'] == 'edit') {  ?>
      <input type="hidden" name="update" value="<?=$_GET['tid']?>" />
      <input type="submit" value="Update"/> 
      <input type="button" value="Cancel" onclick="window.location='testadmin?action=insert'" />
  </p>  
    <?  } ?>
</form>

<br>
<br>
<br><?php $dbEze->debug(); ?>


<table width="927" border="0" cellpadding="5" style="table-layout:fixed; width: 900px; word-wrap:break-word; border-spacing: 5px">
    <tr>
      <td width="85" bgcolor="#CCCCCC">Company</td>
      <td width="73" bgcolor="#CCCCCC">Website</td>
      <td width="97" bgcolor="#CCCCCC">Testimonial</td>
      <td width="55" bgcolor="#CCCCCC">Name</td>
      <td width="76" bgcolor="#CCCCCC">Job Title</td>
      <td width="56" bgcolor="#CCCCCC">Rating</td>
      <td width="48" bgcolor="#CCCCCC">Logo</td>
      <td width="125" bgcolor="#CCCCCC">Product Photo</td>
      <td width="91" bgcolor="#CCCCCC">Twitter</td>
      <td width="99" bgcolor="#CCCCCC"></td>
    </tr>
    <?
    $sql = "SELECT * from testimonials";
    $testimonialsData = $dbEze->get_results($sql);
    foreach ($testimonialsData as $testimonial){

    $logo_cutup = explode('/', $testimonial->logo);
    $logo_lastword = $logo_cutup[(count($logo_cutup))-1];

    $image_cutup = explode('/', $testimonial->image);
    $image_lastword = $image_cutup[(count($image_cutup))-1];
    ?>
    <tr>
      <td><?=$testimonial->company?></td>
      <td><?=$testimonial->company_url?></td>
      <td><?=$testimonial->content?></td>
      <td><?=$testimonial->contentby_name?></td>
      <td><?=$testimonial->contentby_position?></td>
      <td><?=$testimonial->rating?></td>
      <td><a href="<?=$testimonial->logo?>"><?=$logo_lastword?></a></td>
      <td><a href="<?=$testimonial->image?>"><?=$image_lastword?></a></td>
      <td><?=$testimonial->twitter?></td>
      <td>
          <a href="testadmin?action=edit&tid=<?=$testimonial->id?>" class="btn edit">Update <span class="helper"></span></a>
          <br>
          <a href="testadmin?action=delete&tid=<?=$testimonial->id?>" class="btn delete" onClick="return confirm('Are you 100% totally certain that you want to DELETE this testimonial?')">Delete <span class="helper"></span></a>

任何建议都会很棒!

1 个答案:

答案 0 :(得分:1)

看起来您正在尝试从数据库填充表单。哪个很酷。不幸的是,看起来你也试图为input type =“file”元素赋值,这不是很酷。

您试图传递的这些值是什么?如果您尝试分配相对URL,它肯定不会起作用。如果您尝试分配绝对URL,我不太确定它是否也可以。

通常在这些表单中,您可以使用现有图像的预览填写表单,然后让用户单击按钮来替换图像或添加新图像。单击按钮后,您将显示新的文件输入。验证php端的所有内容。