我可以使用以下代码将图像上传到mysql数据库:
<!doctype html>
<html>
<head>
<?php
require_once 'include/db-function.php';
if(isset($_POST['upload'])){
$filename = $_POST['category_name'];
if (getimagesize ($_FILES['image']['tmp_name'] ) ==FALSE){
echo failed;
} else{
$name =addslashes( $_FILES['image']['name']);
$image = base64_encode(file_get_contents(addslashes($_FILES["image"]["tmp_name"])));
saveimage($filename, $image);
}
}
function saveimage($filename,$image){
global $connection;
$query = "insert into categories(category_name,image) values('$filename','$image')";
$result = mysqli_query($connection, $query);
if ($result){
echo "success";
}else{
echo "failed";
}
}
?>
<body>
<form method="post" action="" enctype='multipart/form-data'>
<input type='file' name='image' />
Enter image name :<input id="category_name"type="text" name="category_name">
<input type= "submit" value='Save name' name='upload'>
</form>
</body>
然后我尝试使用以下内容将数据从数据库提取到JSON数组:
<?php require 'include/db-connect.php';
$sql = "select * from categories";
$res = mysqli_query($connection, $sql);
$result = array();
if ($res != false) {
while ($row = mysqli_fetch_array($res)) {
array_push($result, array(
'category_id' => $row['category_id'],
'category_name' => $row['category_name'],
'image' => base64_encode($row['image'])
)
);
}
echo json_encode(array("result" => $result));
}
mysqli_close($connection);
?>
在Android端,这就是我所做的:
private void parseData(String response){
try{
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(Utils.JSON_ARRAY);
ArrayList<CategoryModel> categories = new ArrayList<>();
for (int i = 0; i < result.length(); i++) {
JSONObject data = result.getJSONObject(i);
CategoryModel categoryModel = new CategoryModel();
categoryModel.setImage(data.optString ("image"));
categoryModel.setCategoryName(data.optString("category_name"));
listCategories.add(categoryModel);
}
}
catch (JSONException e) {
e.printStackTrace();
}
//Finally initializing our adapter
adapter = new CategoryViewHolder(listCategories, this);
adapter.setOnItemClickListener(onItemClickListener);
//Adding adapter to RecycleView
recyclerView.setAdapter(adapter);
}
并在onBindViewHolder这就是我所拥有的......我真的不确定如何使用它来设置图像。你也可以在这里帮助我。
public void onBindViewHolder(CategoryViewHolder.ViewHolder holder, int
position) {
CategoryModel category = categories.get(position);
String categories = "";
holder.textView.setText(category.getCategoryName());
//holder to setImage not sure about this part
}
我可以获取类别名称但无法检索图像。非常感谢您的帮助。
答案 0 :(得分:0)
您可以尝试使用Base64.decode将base64字符串转换为字节数组,然后将其转换为位图。并在您的imageView上附加位图,就像这样。
jest.spyOn(A.proptotype,__functionA)
jest.spyOn(A.proptotype,__functionB)
请注意!要进一步检查 this