PHP图片上传

时间:2017-03-18 05:54:52

标签: php html image

我正在尝试使用PHP将图像上传到服务器并保存在目录中,然后返回图像网址。

html代码:

 <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代码:

<?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*/
    }
    ?>

上传时间错误:

  

注意:未定义索引:

中的图像

第二个错误 - &gt;

  

警告:getimagesize()[function.getimagesize]:文件名不能   

中的空白

感谢您的帮助和观点。

4 个答案:

答案 0 :(得分:2)

提交后执行此操作,并检查if条件如下代码。 在哪里&#39;提交&#39;是你的按钮的名称。

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*/
}

答案 1 :(得分:1)

出于安全原因,您还必须检查mime类型和扩展名,最佳做法是在/year/month/file上传文件以避免文件系统问题,请查看此代码https://github.com/MoustafaElkady/SimpleUploader < / p>

答案 2 :(得分: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> 

答案 3 :(得分:0)

替换这个`

<form method="post">

用这个

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

你们都很高兴:)