Я использую платформу Android для хранения изображения в mysql (тип данных blob). Сначала я кодирую изображение в Base64, а затем отправляю в php-файл, который сохраняет в mysql, но не сохраняет какие-либо данные blob в базе данных из php .. пожалуйста, руководство.
это мой метод setter для хранения файла в объекте.
public void setImage_file(String image_file) { Bitmap bitmap = BitmapFactory.decodeFile(image_file); ByteArrayOutputStream bos = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.JPEG, 100, bos); byte[] data = bos.toByteArray(); String file = Base64.encodeToString(data, 0); this.image_file = file; }
теперь для геттера ..
public Bitmap getImage_fileInBitmap() { String base = image_file; byte[] imageAsBytes = Base64.decode(base.getBytes(), Base64.DEFAULT); Bitmap bmp = BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length); return bmp; }
этот возвращенный bmp я показываю в ImageView ..
–my сервер вставить код в android
String image_file = dataHolder.getImage_file(); //DataHolder is a Model Class to hold the data to be shown postDataParams.put("image_file", image_file);
– и php-код
mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); // Get values from form $image_data = $_FILES['image_data']; $data = addslashes($image_data); // Insert data into mysql $sql="INSERT INTO $tbl_name(image_data)VALUES('$data')"; $result=mysql_query($sql); // if successfully insert data into database, displays message "Successful". if($result){ echo "Successful"; } else { echo "ERROR"; }
здесь blob ничего не хранит .. пожалуйста, спасибо.