【发布时间】:2015-12-01 22:50:49
【问题描述】:
我很难将图像数据存储到数据库中,我尝试了两种方法,第一种方法有效,但第二种方法无效,我实际上想使用。
工作代码:
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
$image = $_POST['image'];
$name = $_POST['name'];
require_once('dbConnect.php');
$id = 86;
$path = "uploads/$id.jpg";
$sql = "UPDATE user SET imagePath = '$imagename' where id = '$id'";
if(mysqli_query($con,$sql)){
file_put_contents($path,base64_decode($image));
echo "Successfully Uploaded";
}
mysqli_close($con);
}else{
echo "Error";
}
但是下面的代码不起作用。我使用相同的逻辑,但这次使用$_FILES 和move_uploaded_file。我明白了 echo "Successfully Uploaded" 但图片没有保存到上传文件夹中。
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
$name=$_FILES["image"]["name"];
$temp_name=$_FILES["image"]["tmp_name"];
require_once('dbConnect.php');
$id = 96;
$imagename=$id."_".time().$file_name;
$path = "uploads/".$imagename.".png";
$sql = "UPDATE user SET imagePath = '$imagename' where id = '$id'";
$uploads_dir = '/uploads';
if(mysqli_query($con,$sql)){
move_uploaded_file($temp_name, "$uploads_dir/$name");
echo "Successfully Uploaded";
}
mysqli_close($con);
}else{
echo "Error";
}
非常感谢任何帮助。
更新:这是从 android 调用的方式:
protected Map<String, String> getParams() throws AuthFailureError {
//Converting Bitmap to String
String image = getStringImage(((BitmapDrawable)imageView.getDrawable()).getBitmap());
//Getting Image Name
String name = editTextName.getText().toString().trim();
//Creating parameters
Map<String,String> params = new Hashtable<String, String>();
//Adding parameters
params.put(KEY_IMAGE, image);
params.put(KEY_NAME, name);
//returning parameters
return params;
}
更新 2:位图图像编码为 Base64,如下所示。
public String getStringImage(Bitmap bmp){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
}
params 中的KEY_NAME 等于"name"。
【问题讨论】:
-
您确定 工作代码 确实有效。我敢打赌它不会。
-
@RiggsFolly:我再次测试,我确信第一个代码有效。
-
然后显示激活 PHP 的表单的 HTML
-
@RiggsFolly:我添加了填充要发布的参数的 android (java) 代码。我使用 Volley 请求。
标签: php android android-volley