【问题标题】:if isset not working with auto image upload如果 isset 不适用于自动图像上传
【发布时间】:2018-06-13 01:45:03
【问题描述】:

我有一个表单,它使用JQuery 在选择文件后立即自动提交表单。

图片已上传并正确显示,但表格中没有插入数据。

我已尝试删除“if isset”以测试 SQL 是否正确插入数据,但显然需要 if 语句,因此它不会在每次加载页面时都将数据插入表中。

我认为问题是因为我删除了表单提交按钮,但是如果我将其添加回表单中,则在选择图像后不再自动提交。

$('#file').change(function() {
  $('#target').submit();
});


if(isset($_FILES['file'])){
  DB::query('INSERT INTO images VALUES(\'\', :image, :img_id)',array(':image'=>$image, ':img_id'=>$userid));
}
<form id="target" action="upload.php" name="target" method="POST" enctype="multipart/form-data">
  <img src="uploads/profileu<?=$userid?>u.jpg?=<?php echo rand() . "\n";?>">
  <label class="btn btn-primary glyphicon glyphicon-pencil">
    <input type="file" id="file" name="file" onchange="form.submit()" style="display:none">
  </label>
</form>

我还应该注意图像是从本地文件夹上传和显示的(正常工作),SQL 是简单地将 1 或 0 插入数据库(用户有图像或没有图像)

【问题讨论】:

  • 那是$_FILES['file'],注意S
  • 错字。改变但结果相同
  • jQuery 函数是在 HTML 标记之前还是之后定义的?并删除 form 未定义的内联 onchange="form.submit()"
  • jQuery 在后面定义。 onchange 已删除但结果相同。
  • 最后搞定了。感谢@LouysPatriceBessette 的帮助

标签: php jquery html sql


【解决方案1】:

根本问题是我有action="upload.php" 表单,这是用于上传图像的PHP 的全部存储位置。这意味着我必须将我的 if(isset) 语句移动到该页面的顶部,而不是表单所在的页面。现在它可以在没有提交按钮的情况下完美运行。

【讨论】:

    【解决方案2】:

    因为您要插入 $image$userid,所以您应该检查是否设置了这些变量。

    像这样:

    if (isset($image) && isset($userid)) {
      // insertion code
    }
    

    【讨论】:

    • 两者都设置好了。我尝试在没有 if 语句的情况下运行代码,并且所有数据都正确插入。
    【解决方案3】:

    你必须使用$_FILES['fileName'] 而不是$_FILE

    检查文件是否已成功上传使用。

    if($_FILES["fileName"]["error"] == 0){ ... }

    此外,您可以检查上传的文件是否为图像,您可以将其检查为:

    if(getimagesize($_FILES["fileName"]["tmp_name"])){ //Its an Image } else { //Invalid Image }

    【讨论】:

      猜你喜欢
      • 2021-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 2013-12-22
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多