PHP未定义索引和file_get_contents():文件名不能为空

时间:2018-01-30 03:55:02

标签: javascript php html

我收到以下错误

  

注意:未定义的索引:imgupload in   第9行的C:\ xampp \ htdocs \ cdrrmo \ includes \ newsfeed.inc.php


  

警告:file_get_contents():文件名不能为空   C:\ xampp \ htdocs \ cdrrmo \ includes \ newsfeed.inc.php oI第9行

我想将照片保存在我的数据库中,虽然我收到了上述错误,其他值被接受并存储在我的数据库中:

if (isset($_POST['send'])){
include_once 'includes/dbh.inc.php';
$_SESSION['location'] = mysqli_real_escape_string($conn, $_POST['location']);
$_SESSION['message'] = mysqli_real_escape_string($conn, $_POST['message']);
$file = addslashes(file_get_contents($_FILES["imgupload"]["tmp_name"]));  
//insert the user into the database
$sql = "INSERT INTO newsfeed (user_email,user_uid,user_location, user_message,user_attachment) VALUES ('{$_SESSION['u_email']}','{$_SESSION['u_uid']}','{$_SESSION['location']}', '{$_SESSION['message']}','$file');";
if(mysqli_query($conn, $sql)){
    echo "Event has been reported!";
    exit();
  }?>
<form action="includes/newsfeed.inc.php" method="POST">

<br><br><br><br>


<div class="container" method="POST">
  <div class="row">
    <div class="col-md-12 col-sm-12 col-xs-12">
      <label for="name">Location</label>
      <input type="text" name="location" class="form-control" placeholder="Press 'Get Geolocation'" id="location" required readonly="readonly"><p id="demo1"></p>

        <center><button type="button" onclick="getLocation();" required>Get Geolocation</button></center>

        <script>
        var x = document.getElementById("demo1");
        function getLocation() {
          if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(showPosition);
              } else { 
                  x.innerHTML = "Geolocation is not supported by this browser.";
                }
              }
          function showPosition(position) {
            document.getElementById("location").value = position.coords.latitude + ',' + position.coords.longitude;
        }
        </script>
    </div>
  </div>  
</div>

<div class="container" method="POST">
  <div class="row">
    <div class="col-md-12 col-sm-12 col-xs-12"">
      <label for="name">Message</label>
      <textarea name="message" class="form-control" placeholder="Message" id="message" rows="15" required></textarea>
    </div>
  </div>  
</div>



</form>

<br>
<div class="container">
  <div class="row">
    <div class="col-md-12 col-sm-12 col-xs-12">

        <label for="name">Upload Image</label><br>
          <form method="post" enctype="multipart/form-data">
              <div class="container">
                <p><div class="fileUpload btn btn-primary">
                  <form action="" method="post" enctype="multipart/form-data">
                    <span>+</span>
                    <input type="file" class="upload" name="imgupload" id="imgupload" multiple="multiple">
                    <br />
                  </form>
                </div><a id="imgpreview"></a></p>
                <button class="btn btn-primary" name="send" id="send">POST</button>
             </div>
          </form>
      </div>
  </div>  
</div>




 <!-- script of upload photo -->
 <script src="jquery.min.js"></script>
  <script>
    $(document).ready(function(){
      $('#imgupload').on('change', function(){
        var imgItem = $(this)[0].files;
        var imgCount = $(this)[0].files.length;
        var imgPath = $(this)[0].value;
        var imgExt = imgPath.substring(imgPath.lastIndexOf('.')+1).toLowerCase();
        var imgPreview = $('#imgpreview');
        imgPreview.empty();
        if(imgExt == "gif" || imgExt == "png" || imgExt == "jpg" || imgExt == "jpeg" || imgExt == "bmp"){
          if (typeof(FileReader) != "undefined") {
            for(var i = 0; i < imgCount; i++){
              var reader = new FileReader();
              var fn = imgItem[i].name;
              var fs = imgItem[i].size;
              var ft = imgItem[i].type;
              reader.onload = function(e){
                $("<img />",{
                  "src": e.target.result,
                  "width": "60px",
                  "height": "60px",
                  "class": "imgClass",
                  "title": fn +" and size "+ fs + " bytes and types "+ ft,
                  "alt": fn +" and size "+ fs + " bytes and types "+ ft,
                }).appendTo(imgPreview);
              }
              imgPreview.show();
              reader.readAsDataURL($(this)[0].files[i]); 
            }
          } else  {
            imgPreview.html("This browser does not support FileReader");
          }
        }else{
          imgPreview.html("File not supported!");
        }

      });
     });
     </script>
     <!-- end of script -->

    <!-- SCRIPT OF UPLOADED PHOTO -->
    <script>  
    $(document).ready(function(){  
        $('#send').click(function(){  
             var image_name = $('#imgupload').val();  
             if(image_name == '')  
             {  
                  alert("Please Select Image");  
                  return false;  
             }  
             else  
             {  
                  var extension = $('#imgupload').val().split('.').pop().toLowerCase();  
                  if(jQuery.inArray(extension, ['gif','png','jpg','jpeg']) == -1)  
                  {  
                       alert('Invalid Image File');  
                       $('#imgupload').val('');  
                       return false;  
                  }  
             }  
        });  
     });  
    </script>  
    <!-- END OF SCRIPT -->

1 个答案:

答案 0 :(得分:0)

我在这里做的是,我刚删除了其他<form>代码

if (isset($_POST['send'])){
include_once 'includes/dbh.inc.php';
$_SESSION['location'] = mysqli_real_escape_string($conn, 
$_POST['location']);
$_SESSION['message'] = mysqli_real_escape_string($conn, $_POST['message']);
$file = addslashes(file_get_contents($_FILES["imgupload"]["tmp_name"]));  
//insert the user into the database
$sql = "INSERT INTO newsfeed (user_email,user_uid,user_location, user_message,user_attachment) VALUES ('{$_SESSION['u_email']}','{$_SESSION['u_uid']}','{$_SESSION['location']}', '{$_SESSION['message']}','$file');";
if(mysqli_query($conn, $sql)){
echo "Event has been reported!";
exit();
}?>
<form action="includes/newsfeed.inc.php" method="POST" enctype="multipart/form-data">

<br><br><br><br>


<div class="container" method="POST">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
  <label for="name">Location</label>
  <input type="text" name="location" class="form-control" placeholder="Press 
'Get Geolocation'" id="location" required readonly="readonly"><p id="demo1"></p>

    <center><button type="button" onclick="getLocation();" required>Get Geolocation</button></center>

    <script>
    var x = document.getElementById("demo1");
    function getLocation() {
      if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(showPosition);
          } else { 
              x.innerHTML = "Geolocation is not supported by this browser.";
            }
          }
      function showPosition(position) {
        document.getElementById("location").value = position.coords.latitude + ',' + position.coords.longitude;
    }
    </script>
   </div>
  </div>  
  </div>

 <div class="container" method="POST">
 <div class="row">
 <div class="col-md-12 col-sm-12 col-xs-12">
  <label for="name">Message</label>
  <textarea name="message" class="form-control" placeholder="Message" id="message" rows="15" required></textarea>
 </div>
 </div>  
 </div>
 <br>
<div class="container">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">

    <label for="name">Upload Image</label><br>
          <div class="container">
            <p><div class="fileUpload btn btn-primary">
                <span>+</span>
                <input type="file" class="upload" name="imgupload" id="imgupload" multiple="multiple">
                <br />
            </div><a id="imgpreview"></a></p>
            <button class="btn btn-primary" name="send" id="send">POST</button>
         </div>
  </div>
 </div>  
</div>
</form>



 <!-- script of upload photo -->
 <script src="jquery.min.js"></script>
 <script>
 $(document).ready(function(){
  $('#imgupload').on('change', function(){
    var imgItem = $(this)[0].files;
    var imgCount = $(this)[0].files.length;
    var imgPath = $(this)[0].value;
    var imgExt = imgPath.substring(imgPath.lastIndexOf('.')+1).toLowerCase();
    var imgPreview = $('#imgpreview');
    imgPreview.empty();
    if(imgExt == "gif" || imgExt == "png" || imgExt == "jpg" || imgExt == "jpeg" || imgExt == "bmp"){
      if (typeof(FileReader) != "undefined") {
        for(var i = 0; i < imgCount; i++){
          var reader = new FileReader();
          var fn = imgItem[i].name;
          var fs = imgItem[i].size;
          var ft = imgItem[i].type;
          reader.onload = function(e){
            $("<img />",{
              "src": e.target.result,
              "width": "60px",
              "height": "60px",
              "class": "imgClass",
              "title": fn +" and size "+ fs + " bytes and types "+ ft,
              "alt": fn +" and size "+ fs + " bytes and types "+ ft,
            }).appendTo(imgPreview);
          }
          imgPreview.show();
          reader.readAsDataURL($(this)[0].files[i]); 
        }
      } else  {
        imgPreview.html("This browser does not support FileReader");
      }
    }else{
      imgPreview.html("File not supported!");
    }

  });
  });
  </script>
  <!-- end of script -->

  <!-- SCRIPT OF UPLOADED PHOTO -->
  <script>  
  $(document).ready(function(){  
    $('#send').click(function(){  
         var image_name = $('#imgupload').val();  
         if(image_name == '')  
         {  
              alert("Please Select Image");  
              return false;  
         }  
         else  
         {  
              var extension = 
 $('#imgupload').val().split('.').pop().toLowerCase();  
              if(jQuery.inArray(extension, ['gif','png','jpg','jpeg']) == -1)  
              {  
                   alert('Invalid Image File');  
                   $('#imgupload').val('');  
                   return false;  
              }  
         }  
    });  
 });  
</script>  
<!-- END OF SCRIPT -->