使用mysql和php类保存图像的路径[多次上传]

时间:2019-03-30 16:55:33

标签: php mysql html5 class

O具有html5表单,该表单允许上传多个图像。我希望将图像保存在上载文件夹中,并将文件名存储在数据库中。数据库中的每一列都可以包含更多图像。因此,我创建了一个新表allegato,在其中保存图像名称和它代表的问题ID。我还有用于报告的segnalazione表。因此,几张图片引用了一份报告。

我可以将多个图像上传到服务器,但是我不知道为每个图像保存他的名字,以便在db表中关联其信号。

segnalazione.php中,我具有上载报告的功能。在文件末尾,我可以将报告关联到“附件”表,但是我不知道如何为同时加载的每个文件添加链接。

 function create()
        {
    $query=" INSERT INTO  ". $this->table_name ."  SET
                        nome=:nome, descrizione=:descrizione, contatto=:contatto, tipo_segnalazione=:tipo_seg, indirizzo=:via1, ip=:ip, tracking=:track";
            $stmt = $this->conn->prepare($query);


            // bind values
            $stmt->bindParam(":nome", $this->nome);
            $stmt->bindParam(":descrizione", $this->descrizione);
            $stmt->bindParam(":contatto", $this->contatto);
            $stmt->bindParam(":tipo_seg", $this->tipo_seg);
            $stmt->bindparam(":via1",$this->via1);
            $stmt->bindparam(":ip",$this->ip);

            $stmt->bindparam(":track",$this->tracking);



            if($stmt->execute()){

               $stmt1 = $this->conn->prepare("SELECT id FROM coratocivile where tracking=:track");
                $stmt1->bindparam(":track",$this->tracking);

                $stmt1->execute();
                $id = $stmt1->fetch();
                $id1= $id['id'];
                $stmt2 = $this->conn->prepare("insert into allegato set id_segnalazione='$id1'");

                    $stmt2->execute();





            }else{
                return false;
            }

            return true;
        }
我上传图片的index.php中的

有:     

      if($_POST){

          $segnalazione->descrizione=$_POST['descrizione'];
          $segnalazione->contatto=$_POST['contatto'];
          $segnalazione->nome=$_POST['nome'];
          $segnalazione->tipo_seg=$_POST['tipseg'];
          $segnalazione->ip=$ip = $_SERVER['REMOTE_ADDR'];
          $segnalazione->via1=$_POST['via'];
          $segnalazione->tracking=time();


          $file_dir  = "uploads";

          function compress_image($source_url, $destination_url, $quality) {


              if($source_url==NULL)
              {
                  echo "<div class='alert alert-danger'> Caricamento allegato fallito. Assicurati di aver allegato una foto o un video!</div>";
                  return null;
              }
              else {
                  $info = getimagesize($source_url);

                  if ($info['mime'] == 'image/jpeg')
                      $image = imagecreatefromjpeg($source_url);

                  elseif ($info['mime'] == 'image/gif')
                      $image = imagecreatefromgif($source_url);

                  elseif ($info['mime'] == 'image/png')
                      $image = imagecreatefrompng($source_url);

                  imagejpeg($image, $destination_url, $quality);
                  return $destination_url;
              }
          }
          if (isset($_POST["singlebutton"])) {



                  for ($x = 0; $x < count($_FILES['file']['name']); $x++) {

                      $file_name = time() . $_FILES['file']['name'][$x];
                      $file_tmp = $_FILES['file']['tmp_name'][$x];

                      /* location file save */
                      $file_target = $file_dir . DIRECTORY_SEPARATOR . $file_name;

                      try {

                          if(  $filename = compress_image($file_tmp, $file_target, 30)   && $segnalazione->create()){
                              echo "<div class='alert alert-success'> Segnalazione inviata. </div>";
                          }
                          else echo "<div class='alert alert-danger'> Segnalazione non inviata. Assicurati di aver compilato tutti i campi corretttamente. </div>";
                      } catch (Exception $e) {
                          echo "<div class='alert alert-danger'> Caricamento allegato fallito </div>";
                      }

                  }


          }




      }


      ?>

0 个答案:

没有答案