我试图解码由以下内容生成的字符串:
Javascript代码:
fileReader.readAsDataURL(fileToLoad);
Ps。:它是编码文件的一部分。
在获取文件进行编码后,我放入Json并使用POST方法发送到restfull服务。
Java代码(restfull):
String radiationFilePath = json.getString("radiationFilePath");
String newRadFile = radiationFilePath.replace("\\", ""); \\I read that it is a needed because JsonObject add some '\'
byte[] radiationFileAsBytes = Base64.getDecoder().decode(newRadFile);
这样做,我收到一个例外:
java.lang.IllegalArgumentException:Illegal base64 character 3a
我该怎么办?
PS:我正在使用Maven导入依赖项
答案 0 :(得分:3)
实际上我只是遇到了同样的问题。这是我如何解决它。
首先,您不需要这样做: String newRadFile = radiationFilePath.replace(" \","");
但你必须改为 String newRadFile = radiationFilePath.split(",")[1]
要解决这个问题,我只使用 org.apache.commons.codec.binary.Base64 中的 byte [] data = Base64.decodeBase64(newRadFile)而不是 Base64.getDecoder()进行解码(newRadFile);
然后,如果要从字节数组创建文件,可以使用 FileUtils.writeByteArrayToFile(新文件(" test.jpg"),数据) org.apache.commons.io.FileUtils 强>
希望它有所帮助, 阿德里安。