使用PHP在使用表单上传的localhost上保存图像

时间:2018-04-21 16:45:31

标签: php html

我试图在我的localhost服务器上保存使用HTML表单上传的图像(使用Xampp),但是虽然没有错误,但文件并未保存在任何地方。 这是形式,非常简单:

<form id="form1" action="result.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="imguploaded" id="imguploaded" accept=".png, .jpg, .jpeg"></br>
    <input class="btn btn-outline-danger btn-lg" id="inputbtn" type="submit" value="Upload Image" name="submit">
  </form>

这是PHP代码(在result.php上):

<?php
    $result=false;
    $error=false;
    if (isset($_FILES['imguploaded'])){
        $nomefile = strtolower($_FILES['imguploaded']['name']);
        $path = "caricamenti/$nomefile";
        move_uploaded_file($_FILES['imguploaded']['name'], $path);
        echo($path);
    }
    ?>

路径存在,并且它位于.PHP文件的同一文件夹中。

2 个答案:

答案 0 :(得分:2)

move_uploaded_file($_FILES['imguploaded']['name'], $path);中,第一个参数不正确。它应该是php存储在其中的临时路径,您可以在$_FILE['imguploaded']['tmp_name']中找到它。 所以将该行更改为

move_uploaded_file($_FILES['imguploaded']['tmp_name'], $path);

相关docs

请务必:

  • 清理文件名&amp;首先是扩展
  • 检查允许的mimetypes,大小,..

现在我可以轻松上传php脚本并执行它。

答案 1 :(得分:-1)

试试这个:

 $file_name= $_FILES['imguploaded']['name'];
 $file_tmp_name= $_FILES['imguploaded']['tmp_name'];
 $div= explode('.',$file_name );
 $file_txt= strtolower(end($div));
 $unique_image= substr(md5(time()),0,10).".".$file_txt;
 $uploaded_image= "caricamenti/".$unique_image;
 move_uploaded_file($file_tmp_name,$uploaded_image);