我计划开发一个图像上传API,它需要将图像上传到服务器位置作为我的项目的一部分。 (用法是使用Android应用程序上传用户图片和头像)使用博客将图像上传到服务器PHP
API应与Imgur API类似,我们可以在其中使用发布请求将二进制图像上传到服务器。
我通过多个问题搜索,所有得到的是使用多部分请求,这需要html表单提交。由于我的目标是创建一个API,HTML表单提交将是不可能的。
无论如何,我提交了一个使用html表单上传图片的示例代码。有人可以展示我如何修改脚本以符合我的要求?
<html>
<body>
<form action="photo.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
PHP代码
<?php
$allow = array("jpg", "jpeg", "gif", "png");
$todir = 'uploads/';
if (!!$_FILES['file']['tmp_name']) // is the file uploaded yet?
{
$info = explode('.', strtolower($_FILES['file']['name'])); // whats the extension of the file
if (in_array(end($info), $allow)) // is this file allowed
{
if (move_uploaded_file($_FILES['file']['tmp_name'], $todir . basename($_FILES['file']['name'])))
{
// the file has been moved correctly
}
}
else
{
// error this file ext is not allowed
}
}
?>
它有效的语法'!! $ _ FILES ['file'] ['tmp_name']'??双'!!' – Saty
哎呀。纠正它。感谢您的信息。 –
等待'!!'我认为实际上更有意义,现在你似乎只在没有文件上传时才运行验证码。双重exclam'!!'只是简单地将一个值转换为布尔值,因为它仅仅意味着虚假行为。因此,它将采用一个变量并评估它的布尔值,然后应用逻辑“NOT”,再次执行该操作只会将一个变量转换为布尔值,但由于它处于if条件,因此无论如何,所以我不在这里看点。但是,编辑后,它实际上看起来是错误的。 – apriede