在sqlserver数据库中保存android文件时遇到困难

时间:2018-05-30 15:51:01

标签: java android sql asp.net

我遇到一个问题,找不到通过FileUpload从sql server 2008上的asp.net上的FileUpload保存到数据库的正确编码,类型为Image。我需要使用asp.net中的web服务将Web系统迁移到Android应用程序,以便与此sql server数据库进行通信,但保存的格式与已保存的文件不对应。我不知道这是一个编码(ASCII,UTF-8,...)的问题还是base64编码和解码的问题,或者是否更适合将文件视为十六进制。

系统通过fileupload组件读取文件: file.ARCHIVE = FileUpload1.FileBytes然后保存:context.SaveChanges ()

数据库预期的类型是Image,Web系统在保存后正常读取文件。

我需要通过原生Android应用程序(java)执行相同的过程,因此我读取该文件,将其转换为base64以将其发送到执行文件解码的Web服务并将其保存在相同的类型中数据库。当我比较文件的字符串时,字符串是不同的,因此即使应用程序正常读取,Web系统也会理解文件已损坏。

我已经测试了command.Parameters.Add ("@ ARCHIVE", SqlDbType.Image) .Value = bytes;进行保存,但在我看来,在此保存之前,文件格式不再与网络系统相同。

在Java Android上我们喜欢这个

InputStream inputStream = context.openFileInput(filename);
            if ( inputStream != null ) {
                InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
                BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
                String receiveString = "";
                StringBuilder stringBuilder = new StringBuilder();
                while ( (receiveString = bufferedReader.readLine()) != null ) {
                    stringBuilder.append(receiveString);
                }
                inputStream.close();
                ret = stringBuilder.toString();
            }

0 个答案:

没有答案