上传并将图像存储到服务器时为0 kb

时间:2016-11-08 19:58:51

标签: php android mysql image

我有一个名为images的表。它有两列idimage(varchar300)。我有这个代码upload.php:

<?php 
if($_SERVER['REQUEST_METHOD']=='POST'){
$image = $_POST['image'];
require_once('dbConnect.php');
$sql ="SELECT id FROM images ORDER BY id ASC";
$res = mysqli_query($con,$sql);
$id = 0;
while($row = mysqli_fetch_array($res)){
$id = $row['id'];
}
$path = "uploads/$id.png";
$actualpath = "/home/kinanday/public_html/$path";
$sql = "INSERT INTO images (image) VALUES ('$actualpath')";

if(mysqli_query($con,$sql)){
file_put_contents($path,base64_decode($image));
echo "Successfully Uploaded";
}
mysqli_close($con);
}else{
echo "Error";
}

这是upload.html:

<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<button>Upload</button>
</form>
</body>

问题是:它保存到我的数据库中,但Cpanel中我的文件管理器中的图像是0kb

我正在使用此代码集成到我的Android应用程序,需要具有varchar类型的图像。所以在我的应用程序中没有显示任何图像,因为图像是0KB。

任何人都可以提前修复我的PHP。每个答案对我都很有帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

你需要使用$ _FILES超全局,如@ Fred-ii-所说。 但是$image = $_FILES['image']是一个数组,请在此处查看选项:http://php.net/manual/en/features.file-upload.post-method.php

示例:

$image_name = $_FILES['image']['name'];
$image_size = $_FILES['image']['size'];
$image_tmpname = $_FILES['image']['tmp_name'];  // this is a temporary name that php uses on every upload he does.
$image_type = $_FILES['image']['type'];
$image_error = $_FILES['image']['error'];