android mssql,android - 如何在Android中将Blob上传到MSSQL? - 堆栈内存溢出

我正在尝试从Android Studio使用JTDS 1.30将jpg文件上传到MSSQL服务器。 我可以使用以下代码将jpg转换为blob格式(或在需要时使用base64):

Bitmap bitmap = BitmapFactory.decodeFile("/storage/sdcard0/Shipright/Pod/test.jpg");

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

bitmap.compress(Bitmap.CompressFormat.JPEG, 90, byteArrayOutputStream);

byte[] blob = byteArrayOutputStream.toByteArray();

String encodedImage = Base64.encodeToString(blob, Base64.DEFAULT);

但是,实际将其上载到数据库中的代码始终给我一个错误:

try {

Blob blobUpload = con.createBlob();

blobUpload.setBytes(0, blob);

String query = "insert into pics values ('today', 'test.jpg', '11111', 'Jay', '111', '287', '13', ?)";

PreparedStatement ps = con.prepareStatement(query);

Timber.d(query);

ps.setBlob(1, blobUpload);

ps.executeUpdate();

} catch (Exception e) {

Timber.e("error: " + e.getMessage());

}

我在con.createBlob行上收到了AbstractMethodError:

09-11 10:26:46.246 8462-8462 / com.procatdt.sandfile E / AndroidRuntime:致命例外:主进程:com.procatdt.sandfile,PID:net.sourceforge.jtds.jdbc上的8462 java.lang.AbstractMethodError。 com.procatdt.sandfile.CopyActivity.onCreate(CopyActivity.java:46)上的JtdsConnection.createBlob(JtdsConnection.java:2755)

似乎也不能将它直接作为base64上传到列中,因为sql server说我需要先将其转换为varbinary(max)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值