2016-03-31 19 views
-2

フォームを使用して画像をアップロードして別のページに表示する際に問題がありますが、基本的な問題は保存場所の画像が見つかりません。PHPとフォームを使用して画像をアップロードする

  <form role="form" id="equipe" action="editEquipe.php" method="get"> 
       <div class="box-body"> 




       <div class="form-group"> 
        <label for="id_equipe">id Equipe</label> 
        <input type="text" class="form-control" id="id_equipe" name="id_equipe"> 
       </div> 


       <div class="form-group"> 
        <label for="drapeau">Télécharger le logo</label> 


        <input type="file" id="logo" name="logo"> 

       </div> 

       </div><!-- /.box-body --> 

       <div class="box-footer"> 
       <button type="submit" value="" class="btn btn-primary">Modifier</button> 
       </div> 
      </form> 

そして、これが私のaction.php次のとおりです:

これはform.phpある

if(isset($_GET['id_equipe']) && isset($_GET['logo'])) 

    { 
     $id_equipe= $_GET['id_equipe']; 

     $logo = $_GET['logo']; 



    $imgname = "logo_".$id_equipe; 
    $logoImage=$imgname.".png"; 
    $link = "http://.../LogoImages/".$imgname.".png"; 


if ($conn->connect_error) { 
$response["error"] = -1; 
$response["message"] = "cannot connect to the server please try   again"; 
    } 


else 
    { 

    $sql = "UPDATE equipe set 
    nomEquipe='$nom_equipe', 
    logoEquipe=' $link', 
    idChampionnat='$nom_championnat' 

    where idEquipe='$id_equipe' "; 

    $updatedispo = $conn->query(sprintf($sql)); 
    if($updatedispo) 
    {   


    $imsrc = base64_decode($logoImage); 


    $path ="http://.../LogoImages/".$imgname.".png"; 

    $path = str_replace('\/','/',$path); 




    $fp = fopen($path, 'wb'); 
    var_dump($fp); 


    if(is_readable($fp)) echo 'readable '; 
    else echo "no redable "; 

    if(is_writable($fp)) echo 'writable '; 
     else echo "no writable"; 

    fwrite($fp, $logoImage); 
    // var_dump($fp); 

     fclose($fp); 



        $response["error"] = 0; 
        $response['picture'] = $path; 

        $response['message'] = "Image uploaded in ".$path; 
        $response['id_image'] = $id_equipe; 
        $response["message"] = " equipe updated"; 


    } 

    else 
    { 
        $response["error"] = -1; 
        $response["message"] = "error requete"; 
    } 
    } 
    } 


    else 
     { 
     $response["error"] = 100; 
     $response["message"] = "Some params are missing"; 
     } 
    echo json_encode($response); 


     ?> 
+0

ファイルをアップロードするには、postメソッドが必要ですが、有効なenctypeは取得できません。 RTM http://php.net/manual/en/features.file-upload.post-method.php –

+0

'action =" editEquipe.php "' * * "これは私のaction.php" * –

答えて

0

は、これが画像のアップロードのために使用されるフォームのenctype = "マルチパート/フォームデータ" に

<form role="form" id="equipe" enctype="multipart/form-data" action="editEquipe.php" method="get"> 


これを追加します。

+0

申し訳ありませんが、 does not work – user3070123

+0

今、私は画像を書き込むことはできませんが、それを表示する許可は常に600です。私はアクセス許可が777をデフォルト値として使用したいと思います。任意のアイデア、私はFTPを使用している – user3070123

0

述べたように、あなたはメソッドとしてPOSTを使用する必要があります。アップロードされたイメージへのパスは$ _FILE varibaleにあります。

$tmp_path = $_FILES['logo']['tmp_name']; 
$filesize = $_FILES['logo']['size']; 
//filesize is bigger then 0 if the logo was set 

あなたは、あなたのWWWフォルダ(http://php.net/manual/en/function.move-uploaded-file.php)にファイルを移動が、より良い、このファイルが有効であるかどうかを確認することができます!しかし、これは問題ではありませんでした。

関連する問題