2017-12-20 6 views
-1

と、データベース内のプレビューファイルおよびストア私がしようとしている次のスクリプト使用:アップロードした画像 アップロードおよびPHP

  • プレビュープレビュー
  • フォルダにファイルを移動し

    1. データベースに名前をロードします。

    すべて正常に動作しますが、イメージ名はデータベースにアップロードされません。私はエラーを理解していない、誰かが私を助けることができますか? ありがとうございます。

    <!--script view preview image--> 
    <script type="text/javascript"> 
        function readURL(input) { 
         if (input.files && input.files[0]) { 
          var reader = new FileReader(); 
    
          reader.onload = function (e) { 
          $('#image') 
          .attr('src', e.target.result) 
          .width(200) 
          .height(); 
          }; 
          reader.readAsDataURL(input.files[0]); 
         } 
        } 
    </script> 
    <!-- /script view preview image--> 
    
    <!--html form--> 
    <form action="nuovo-articolo.php?start=1" method="POST" enctype="multipart/form-data"> 
        <div class="row"> 
        <div class="col-xs-4 col-md-4"> 
         <label>Upload image</label> 
         <label>(Max 300Kb - jpg, jpeg, png)</label> 
         <input class="form-control" type="file" name="image" onchange="readURL(this);" /> 
        </div><!-- /upload image --> 
    
        <div class="col-xs-4 col-md-4"> 
         <label>Anteprima</label> 
         <p><img id="image" src="#" alt="Immagine" /></p> 
        </div><!-- /preview image --> 
        </div><!-- /row --> 
    
        <div class="row"> 
        <div class="col-xs-1 col-md-1"> 
         <input type="submit" class="btn btn-success" value="Inserisci" name="submit" /> 
        </div><!-- /submit --> 
        </div><!-- /row --> 
    </form><!-- /form --> 
    <!--html form--> 
    
    <!-- php --> 
    <?php 
    //store img name file into database 
    if (!empty ($_GET["start"])) { 
        $sql = "INSERT INTO articoli 
        (image) 
        VALUES 
        (
        '".$_POST["image"]."' 
        )"; 
    
        //upload file into folder 
        if ($conn->query($sql) === TRUE) { 
         if(isset($_FILES['image'])){ 
          $errors= array(); 
          $file_name = $_FILES['image']['name']; 
          $file_size =$_FILES['image']['size']; 
          $file_tmp =$_FILES['image']['tmp_name']; 
          $file_type=$_FILES['image']['type']; 
          $file_ext=strtolower(end(explode('.',$_FILES['image']['name']))); 
         //file extension check 
          $expensions= array("jpeg","jpg","png"); 
    
          if(in_array($file_ext,$expensions)=== false){ 
            $errors[]="I formati accettati sono JPEG o PNG."; 
          } 
         //file dimension check 
          if($file_size > 301000){ 
            $errors[]='La dimensione del file non deve superare 300Kb'; 
          } 
         //move file into folder 
          if(empty($errors)==true){ 
            move_uploaded_file($file_tmp,"../../uploads/articoli/".$file_name); 
            echo "File caricato"; 
          }else{ 
            print_r($errors); 
          } 
         } 
        //redirect 
         header('Location: giacenze.php'); 
        } else { 
         echo "Errore: " . $sql . "<br>" . $conn->error; 
        } 
    } 
    ?> 
    <!-- /php --> 
    
  • +0

    とエラーは何ですか? – ino

    +0

    IFステートメントが条件を満たしていますか? URLに「開始」属性が含まれていますか? – ino

    +0

    投稿に書かれているように、私はプレビューを表示し、画像はフォルダには挿入されますが、データベースには挿入されません。 私はセキュリティのために開始条件を追加しました。これは確かにurlにあります。フォームタグのaction属性を参照してください。 イメージ名がデータベースに挿入されていない理由を理解できません –

    答えて

    0

    ファイルをフォルダに移動するときに、イメージ名を挿入してください。ここで$ファイル名を取得します。

    //場合は、フォルダ

    にファイルを移動(空($エラー)== TRUE){

    move_uploaded_file($file_tmp,"../../uploads/articoli/".$file_name); 
        echo "File caricato"; 
        $sql = "INSERT INTO articoli (image) VALUES ('".file_name."')"; 
    

    }

    +0

    これですべてが完璧に機能しました。 –

    関連する問題