正如问题标题所说,任何人都可以帮助我如何将任何类型的文件上传到android中的数据库
我试过上传图片..
//我们要从
下载的地方URL url = new URL(IMAGE_URL); //http://example.com/image.jpg
//open the connection
URLConnection ucon = url.openConnection();
//buffer the download
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is,128);
ByteArrayBuffer baf = new ByteArrayBuffer(128);
//get the bytes one by one
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
//store the data as a ByteArray
//db is a SQLiteDatabase object
ContentValues dataToInsert = new ContentValues();
dataToInsert.put(TABLE_FIELD,baf.toByteArray());
db.insert(TABLE_NAME, null, dataToInsert);
And this is how you get the data back and convert it into a Bitmap:
//select the data
Cursor cursor = db.query(TABLE_STATIONLIST, new String[] {TABLE_FIELD},
null, null, null, null, null);
//get it as a ByteArray
byte[] imageByteArray=cursor.getBlob(1);
//the cursor is not needed anymore
cursor.close();
//convert it back to an image
ByteArrayInputStream imageStream = new ByteArrayInputStream(mybyte);
Bitmap theImage = BitmapFactory.decodeStream(imageStream));
答案 0 :(得分:1)
Android有一个私人目录,可用于存储数据(如图像)和其他应用无法看到。它安全且符合新的Android 6权限系统(您不需要请求write_storage权限)。
在我看来,在Android中保存图像并不是一个好习惯,因为你的应用程序有一个私人目录(保存sqlite的地方......)并且更容易获取/保存数据
在这篇文章Saving and Reading Bitmaps/Images from Internal memory in Android中,你可以看到如何做到这一点。
答案 1 :(得分:0)
在Android上存储文件是一种不好的做法,因为Android的存储空间有限。如果您想下载图像,只需从服务器上的图像URL下载它。当文件上传到服务器上时,如果您愿意,则生成一个唯一的URL使用下载它。