2017-03-18 19 views
0

PHPを使用してサーバーに画像をアップロードし、ディレクトリ内に保存してから画像URLを返そうとしています。PHP画像アップロード

HTMLコード:

<?php 
    if(isset($_POST['Save'])) 
    { 
    /*image */ 
    $traget_dir="image/"; 
    $traget_file=$traget_dir .basename($_FILES["image"]["name"]); 
    $uploadOk=1; 
    $imageFileType = pathinfo($traget_file,PATHINFO_EXTENSION); 
    $check=getimagesize($_FILES["image"]["tmp_name"]); 
    if($check !== false) { 
     echo "File is an image - " . $check["mime"] . "."; 
     $uploadOk = 1; 
    } else{ 
     echo "File is not an image."; 
     $uploadOk = 0; 
    } 
    /*end image upload*/ 
    } 
    ?> 

アップロード時にエラー:

注意:未定義のインデックス:画像

にアップロード画像用

<form method="post"> 
    <fieldset> 
    <div class="form-group col-md-6 col-lg-6 col-sm-12"> 
     <input type="file" class="form-control" name="image" required="required"> 
    </div> 
    <div class="form-group"> 
     <button type="submit" name="Save" class="btn btn-primary">Create</button> 
    </div> 
    </fieldset> 
</form> 

PHPコード

第二は、エラー - >

警告:getimagesize()[function.getimagesize]:ファイル名が助けとビューの

感謝に 空にすることはできません。

+0

あなたは完全なPHPコードとHTMLを表示できますか? –

答えて

2

送信後にこの操作を行い、次のコードのように条件が満たされているかどうかを確認してください。 ここで、 'SUBMIT'はボタンの名前です。あなたはまた、MIMEタイプと拡張子を確認する必要があり、およびベストプラクティスは、ファイルシステムの問題を避けるために、/year/month/fileでファイルをアップロードすることで、セキュリティ上の理由から

if(isset($_POST['SUBMIT'])) 
{ 
/*image */ 
$traget_dir="image/"; 
$traget_file=$traget_dir .basename($_FILES["image"]["name"]); 
$uploadOk=1; 
$imageFileType = pathinfo($traget_file,PATHINFO_EXTENSION); 
$check=getimagesize($_FILES["image"]["tmp_name"]); 
if($check !== false) { 
    echo "File is an image - " . $check["mime"] . "."; 
    $uploadOk = 1; 
} else{ 
    echo "File is not an image."; 
    $uploadOk = 0; 
} 
/*end image upload*/ 
} 
+0

ありがとう、ジョン、しかし同じエラー – Ankit

+0

@Ankitあなたは完全なコードを提供できますか? –

+0

これを 'enctype =" multipart/form-data "' –

0

ますフォームにもファイルをアップロードするように伝える必要があります。あなたがそうenctype=multipart/form-data

を使用してこれを行うことができます

、フォームは次のようになります。

<form method="post" enctype="multipart/form-data"> 
    <fieldset> 
    <div class="form-group col-md-6 col-lg-6 col-sm-12"> 
     <input type="file" class="form-control" name="image" required="required"> 
    </div> 
    <div class="form-group"> 
     <button type="submit" name="Save" class="btn btn-primary">Create</button> 
    </div> 
    </fieldset> 
</form> 
0

この

<form method="post" enctype="multipart/form-data"> 

と、この `

<form method="post"> 

を交換し、 yあなたはすべて行くには良いです:)

関連する問題