Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP:如何确保仅更新文本字段时不覆盖图像详细信息

PHP:如何确保仅更新文本字段时不覆盖图像详细信息
EN

Stack Overflow用户
提问于 2016-01-08 23:13:57
回答 1查看 45关注 0票数 0

我正在使用下面的代码更新我的经典(书籍)数据库中的字段。问题是,当我只更新文本字段(即。它用空白(或类似于空白的内容)覆盖图像详细信息字段,以便显示更新的文本字段,但显示一个损坏的图像链接。

代码语言:javascript
运行
AI代码解释
复制
if (!empty($_FILES["image2"]))

  {
    $ed_author   = get_post($conn, 'ed_author');
    $ed_title    = get_post($conn, 'ed_title');
    $ed_category = get_post($conn, 'ed_category');
    $ed_year     = get_post($conn, 'ed_year');
    $hid_isbn     = get_post($conn, 'hid_isbn');

    $filetmp = $_FILES["image2"]["tmp_name"];
    $filename = $_FILES["image2"]["name"];
    $filetype = $_FILES["image2"]["type"];
    $filepath = "images/".$filename;

    move_uploaded_file($filetmp, $filepath);        

    $query    = "UPDATE classics SET author='$ed_author', title='$ed_title', type='$ed_category', year='$ed_year', filename='$filename', filepath='$filepath', filetype='$filetype'WHERE isbn='$hid_isbn'";     

    $result   = $conn->query($query);

    if (!$result) echo "EDIT with image failed: $query<br>" .
    $conn->error . "<br><br>";
    $result   = $conn->query($query);                   
  }
     else{
        $ed_author   = get_post($conn, 'ed_author');
        $ed_title    = get_post($conn, 'ed_title');
        $ed_category = get_post($conn, 'ed_category');
        $ed_year     = get_post($conn, 'ed_year');
        $hid_isbn     = get_post($conn, 'hid_isbn');
        $oldfilename = get_post($conn, 'oldfilename');
        $oldfilepath = get_post($conn, 'oldfilepath');
        $oldfiletype = get_post($conn, 'oldfiletype');      


    $query  = "UPDATE classics SET author='$ed_author', title='$ed_title', type='$ed_category', year='$ed_year', filename='$oldfilename', filepath='$oldfilepath', filetype='$oldfiletype' WHERE isbn='$hid_isbn'";     
        $result   = $conn->query($query);

    if (!$result) echo "EDIT with image failed: $query<br>" .
    $conn->error . "<br><br>";

     }   

我知道问题是:当没有添加新的映像时,image2从来不会测试为空,因此仍然会转到if块(!$_FILES($_FILES“image2”))‘而不是rather。那么,当没有选择图像时,我应该如何检查image2呢?会很感激你的建议。

此外,更完整的是,下面是表单,附加的是在没有添加新图像的情况下进行更新后具有损坏图像链接的记录的图像:

代码语言:javascript
运行
AI代码解释
复制
 <form action="sqltest.php" method="post" enctype="multipart/form-data"><pre>
        Author <input type="text" name="ed_author" value="<?php echo $row[0]; ?>">
         Title <input type="text" name="ed_title" value="<?php echo $row[1]; ?>">
      Category <input type="text" name="ed_category" value="<?php echo $row[2]; ?>">
          Year <input type="text" name="ed_year" value="<?php echo $row[3]; ?>">
          ISBN <input type="text" name="hid_isbn" value="<?php echo $row[4]; ?>"readonly>

               <input type="hidden" name="oldfilename" value="<?php echo $row[6]; ?>">  
               <input type="hidden" name="oldfilepath" value="<?php echo $row[7]; ?>">
               <input type="hidden" name="oldfiletype" value="<?php echo $row[8]; ?>">

               <input type="file" name="image2">
               <input type="hidden" name="edit" value="yes">
               <input type="submit" name="btn2" value="SUBMIT EDIT">

        </pre></form>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-08 23:25:51

这里的问题是,在提交文件输入时,$_FILES['image2']确实总是被填充。

您可以尝试以下方法:

  1. 在脚本的开头添加一个var_dump($_FILES['image2'])
  2. 发送没有选定图像的请求
  3. 保存输出
  4. 发送具有选定图像的请求
  5. 保存输出
  6. 注意差别
  7. 相应地调整代码

这很可能会导致这样一个事实,例如,您可以检查该字段的error索引,如下所示:

代码语言:javascript
运行
AI代码解释
复制
if (!empty($_FILES['image2']) && $_FILES['image2']['error'] != UPLOAD_ERR_NO_FILE) { ... }

但是,您可能也需要重新构造代码,因为如果您现在不上传图像,所有其他字段都不会更新(因为if -块永远不会执行)。

您可以在这里找到更多关于此的信息:POST方法上传上载错误解释

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34690784

复制
相关文章
RabbitMq如何确保消息不丢失
上篇写了掌握Rabbitmq几个重要概念,从一条消息说起,这篇来总结关于消息丢失让人头痛的事情。网络故障、服务器重启、硬盘损坏等都会导致消息的丢失。消息从生产到消费主要结果以下几个阶段如下图。
李明成
2020/09/27
1.1K0
RabbitMq如何确保消息不丢失
rabbitmq如何确保消息不丢失 chengtian
上篇写了掌握Rabbitmq几个重要概念,从一条消息说起,这篇来总结关于消息丢失让人头痛的事情。网络故障、服务器重启、硬盘损坏等都会导致消息的丢失。消息从生产到消费主要结果以下几个阶段如下图。
跟着阿笨一起玩NET
2021/12/21
5070
rabbitmq如何确保消息不丢失 chengtian
面试系列-mysql如何确保数据不丢失
假如6成功之后,mysql宕机了,此时p1修改已写⼊磁盘,但是p2的修改还未写⼊磁盘,最终导致userid=666的记录被修改成功了,userid=888的数据被修改失败了,数据是有问题的
用户4283147
2022/10/27
1.2K0
【EF】 更新条目时出错。有关详细信息,请参见内部异常。[通俗易懂]
最近在做图书馆项目,想要跟新现有读者的部分信息,在实现的过程中却出现了这样的错误“用户代码未处理 DBUpdateException 更新条目时出错。有关详细信息,请参见内部异常。”
全栈程序员站长
2022/08/09
1.9K0
【EF】 更新条目时出错。有关详细信息,请参见内部异常。[通俗易懂]
DTO返回JSON时,不展示某字段;DTO返回JSON时,更改某展示字段的key
//DTO返回JSON时,不展示某字段 @JsonIgnore private String addresses; //DTO返回JSON时,更改某展示字段的key @JsonProperty(value = "addresses") public final CalendarVideoAddressDTO getAddressesJSON() { if (addresses != null) { return JSONObject.pars
qubianzhong
2019/04/22
2.4K0
图像覆盖堆叠
2021-12-10 21:57:19.573 | INFO | __main__:image_stitching:49 - 待拼接图片的原尺寸: (460, 460) 2021-12-10 21:57:19.575 | INFO | __main__:image_stitching:52 - 待拼接图片重置尺寸: (1280, 1280) 2021-12-10 21:57:19.654 | INFO | __main__:image_stitching:58 - --- width=1280,heigh=1280 2021-12-10 21:57:20.915 | INFO | __main__:<module>:75 - 左右拼接完成 --- 2021-12-10 21:57:21.070 | INFO | __main__:image_synthesis:12 - 母图尺寸:(2560, 1280) 2021-12-10 21:57:21.071 | INFO | __main__:image_synthesis:14 - 子图尺寸:(460, 460) 2021-12-10 21:57:21.073 | INFO | __main__:image_synthesis:17 - 子图重置比例: 1.1130434782608696 2021-12-10 21:57:21.075 | INFO | __main__:image_synthesis:22 - 防止子图尺寸大于母图 2021-12-10 21:57:21.076 | INFO | __main__:image_synthesis:25 - 防止子图尺寸大于母图 2021-12-10 21:57:21.102 | INFO | __main__:image_synthesis:29 - 重置后子图尺寸:(413, 413) 2021-12-10 21:57:22.817 | INFO | __main__:<module>:79 - --- end --- res = C:/Users/xpp/Desktop/Lena\synthesis_.png 算法:图像覆盖堆叠是包括图像读取,图片尺寸读取,重置图片大小,图片等比缩放,图片拼接,图片覆盖与堆叠(子母图)在内。 链接:https://www.cnpython.com/tags/290753
裴来凡
2022/05/29
6390
图像覆盖堆叠
大数据开发:消息队列如何确保消息不丢失?
消息队列在大数据技术生态当中,一直都是值得重视的存在,开源的消息队列产品,市面上也不少,基于不同的场景,需要去匹配不同的解决方案。围绕消息队列,今天的大数据开发学习分享,我们主要来聊聊,消息队列如何确保消息不丢失。
成都加米谷大数据
2021/07/07
1.6K0
大数据开发:消息队列如何确保消息不丢失?
父进程退出时如何确保子进程退出?
子进程退出的时候,父进程能够收到子进程退出的信号,便于管理,但是有时候又需要在父进程退出的时候,子进程也退出,该怎么办呢?
编程珠玑
2019/09/02
12.5K0
JavaScript 覆盖对象字段级别
下列的代码可以实现a和b两个对象进行覆盖合并,不同于object.asgin 会覆盖。下列的代码只会字段级覆盖。
小贝壳
2020/09/09
9040
SAP 如何修改字段的文本描述
在实际业务开展中,需要将SAP使用较低或不用的标准字段借用于其它用户,则需要将某个字段的名称描述改成另一个名称描述,例如小编计划把物料主数据的旧物料号字段用于来存放某个关联系统的对应物料号,具体操作步骤如下:
用户5495712
2020/05/13
2.6K0
fastjson如何指定字段不序列化
fastjson是一款由阿里巴巴提供的性能出色的json序列化与反序列化库,而且使用很方便,我们可以使用JSON.toJSONString(object)将一个对象序列化为json格式,但是如果我们不想把一个类的所有成员都序列化怎么办呢。
johnhuster的分享
2022/03/28
2.4K0
迁移到云平台时如何确保成功过渡
为云迁移做好准备必须对迁移的商业案例有深刻的理解,制定计划,选择合适的云服务提供商,并招聘合适的人才。在迁移到云平台时,无论是第一次迁移还是作为正在进行的过程的一部分,都需要考虑一个关键方面:云支出优化需要定期跟踪和对可变云支出模型的问责。协作团队需要权衡支出、成本和质量,利用云计算提供商提供的账单数据,做出更准确的决策。
静一
2021/11/08
3690
如何解决mybatis-plus调用update方法时,自动填充字段不生效问题
使用过mybatis-plus的朋友可能会知道,通过实现元对象处理器接口com.baomidou.mybatisplus.core.handlers.MetaObjectHandler可以实现字段填充功能。但如果在更新实体,使用boolean update(Wrapper<T> updateWrapper)这个方法进行更新时,则自动填充会失效。今天就来聊聊这个话题,本文例子使用的mybatis-plus版本为3.1.2版本
lyb-geek
2021/01/30
4.4K0
如何解决mybatis-plus调用update方法时,自动填充字段不生效问题
PHP变量覆盖
变量覆盖,顾名思义,就是将原来变量的值给覆盖掉,变量覆盖漏洞有的时候可以直接让我们获取Webshell,拿到服务器的权限
Gh0st1nTheShel
2022/07/26
3.2K0
Python - 获取图像Exif详细信息
相机拍摄照片会在文件中记录拍摄的重要参数,包括机身信息、光圈、焦距、感光度、时间、拍摄地点等等。本文介绍获取此类信息的方法。 安装python包 安装exifread: pip install exifread 上代码 import exifread import requests class PhotoExifInfo(): def __init__(self,photo_path): self.photo_path = photo_path
为为为什么
2022/08/04
1.3K0
jmeter如何确保输入的参数为唯一字段
2、整理好一个文本,把你需要修改的字段全部保存在保存在文本中。(注意:如果需要修改的字段不止一个的话,用英文逗号分隔开) 这边我需要修改发放优惠券的名称,以及金额,可以自定义的去填写自己想要填写的参数。
全栈程序员站长
2022/06/29
1.1K0
jmeter如何确保输入的参数为唯一字段
TimeLine模型下确保消息有序不丢
通过《基于TimeLine模型的消息同步机制》一文,我们了解到Timeline模型有非常多的优点,也是钉钉采用的消息同步机制。实际工作中,我们也将该模型应用在了C端用户的消息场景中。实施过程中也遇到了一些问题,积累了一些经验。本文将介绍极端情况丢失消息的问题及解决办法。
普通程序员
2019/10/23
1.2K0
TimeLine模型下确保消息有序不丢
第9条 覆盖equals时总要覆盖hashCode
覆盖了equals方法,也必须覆盖hashCode方法,if not,就违反了hashCode的通用约定,会导致无法跟基于散列的集合正常运作.
程序亦非猿
2019/08/16
1.1K0
使用OpenCV实现图像覆盖
每张图像都包括RGB三个通道,分别代表红色、绿色和蓝色,使用它们来定义图像中任意一点的像素值,红绿蓝的值在0-255之间。
小白学视觉
2020/06/29
4.9K0
使用OpenCV实现图像覆盖
点击加载更多

相似问题

背景图像仅覆盖文本

23

确保固定位置div不覆盖文本

22

Django图像字段不更新图像

12

mongodb更新现有字段而不覆盖

144

如何确保PHP不“断开”

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档