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