如何在URL中传递POST参数

时间:2017-05-26 16:45:53

标签: php html post http-post httprequest

是否可以通过在没有HTML内容的URL中发送POST或REQUEST参数来上传图像/文件?

我创建了一个PHP文件,该文件从我的某人那里获取图像,将该文件存储到数据库中,以及在我的计算机上的文件夹中。它工作正常,但我现在要做的是删除html内容,只允许有人通过URL发送图像/文件。我尝试使用$_GET,但收到了很多错误。我也对此进行了研究,并认为只有$_POST才有效。

这是我的带有HTML的PHP​​源代码,但请记住,"我希望页面空白,并且有人发送图像/文件的唯一方法是通过URL"。

PHP:

if(isset($_POST['submit'])){

    if(@getimagesize($_FILES['image']['tmp_name']) ==FALSE){

        // Select an image
        echo "Please select an image.";
    }
    else{
    // THE PATH TO STORE THE UPLOAD IMAGE
    $target = "images/".basename($_FILES['image']['name']);

    //CONNECT TO DATABASE
    $db = mysqli_connect("localhost", "root", "");
    mysqli_select_db($db, "magicsever");

    if(mysqli_connect_error()){

        die ("Database connection error");
    }
    //GET ALL THE SUBMITTED DATA
    $image = $_FILES['image']['tmp_name'];
    $name = $_FILES['image']['name'];

    //Store te submitted data to database
    $sql = "INSERT INTO image_test (name, image)VALUES ('$name','$image')";
    $query = mysqli_query($db, $sql);


    //Now lets move the uploaded image into the folder

    $nullResult = array();
    $nullResult['Image'] = (move_uploaded_file($_FILES['image']['tmp_name'], $target))? "Successful": "Unsuccessful";
    echo json_encode($nullResult);                      


    }
}

HTML:

<form action="index.php" method="post" enctype="multipart/form-data">

<input type="file" name="image">
    <br></br>
<input type="submit" name="submit" value="Upload">




</form>

1 个答案:

答案 0 :(得分:1)

$ _ POST [ ''];参数来自通常将方法设置为POST的形式,就像你的那样,你输入的那个输入类型(文件,命名图像)将返回$ _POST ['image'],另一方面$ _REQUEST是“GET”方法,它以同样的方式工作,唯一的区别是它不安全,它来自网址。老实说,我建议使用POST。还使用PDO,因为您的代码易受SQL注入攻击。 (Alex Howansky提到)