当前位置: 首页 > 知识库问答 >
问题:

无法在FTP服务器上写入Base64图像数据

水瀚漠
2023-03-14

我在FTP上写入Base64image数据时遇到了问题。当我把它写在本地驱动器上时,照片显示得很清楚。但是,当我把它写在FTP服务器上时,它看起来就像被破坏的图像。当我把它写在本地驱动器上时,它是这样显示的。在这里输入图像描述。我已将图片附加到FTP上。在此处输入图像描述

这是我的密码。

  private static String testFilesDir = "C:\\Storage";
public String getIncidentPhotoByID(int incident_id, int photoId) {
    String base64Image = null;
    WebSSLClient client = new WebSSLClient();

    Response response =client.createRequest(PropertiesUtil.getOracleCloudRestUrL() + "/mobile/platform/storage/collections/incident_photos_collection/objects/incident_462_03").get();

    String jsonResponse = response.readEntity(String.class);

            base64Image = jsonResponse;
                FTPClient ftp = new FTPClient();  
                FileInputStream fis = null;
                String filename = "incident_462_03";

                String[] strings = base64Image.split(",");
                String extension;
                   switch (strings[0]) {//check image's extension
                       case "data:image/jpeg;base64":
                           extension = "jpeg";
                           break;
                       case "data:image/png;base64":
                           extension = "png";
                           break;
                       default://should write cases for more images types
                           extension = "jpg";
                           break;
                   }
                //convert base64 string to binary data

                   byte[] data1 = Base64.decodeBase64(strings[1]);
                 /*
                   String path = testFilesDir+"/"+filename+"."+ extension;
                   File file = new File(path);
                   try (OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(file))) {
                       outputStream.write(data1);
                   } catch (IOException e) {
                       e.printStackTrace();
                   } */

                   try  {  

                       ftp.connect("link.myjpl.com");
                       ftp.login("user", "password");
                       String path = "Images/test/"+filename+"."+ extension;
                       OutputStream out1 = ftp.storeFileStream(path);
                       out1.write(data1);
                       ftp.logout();

                   } catch (IOException e) {
                       e.printStackTrace();
                   } 

    return base64Image;
}

}

共有1个答案

有凯泽
2023-03-14

尝试将文件类型设置为FTP。二进制文件类型。同样根据javadocs,要完成文件传输,必须调用completePendingCommand并检查其返回值以验证成功。

看见https://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/ftp/FTPClient.html#storeFileStream(java.lang.String)

 类似资料:
  • 你好,我有错误,如java.lang.NullPointerException上OutputStream out=ftp.storeFileStream(路径);. 你能帮帮我吗?代码编写了第一个图像,并完全停止了编写。这是我的方法代码。。。。。。。。 我将发布两个单独的代码。事实上这是一种方法。 这是NPE错误! java.lang.NullPointerException atcom.scm.

  • 当我尝试将对象内容上载到FTP服务器 [它的值从[T:InputFileUpload]组件中获取] 我的web浏览器中的加载指示器播放并且不会停止 调试时,我发现我的come在一行中冻结 但是我尝试了3个方法(如代码所示)来上载 ,但是所有方法仍然不工作 将文件上载到FTPServer控制器方法

  • 问题内容: 我正在尝试编写一个代码,以在我的独立服务器上打开FTP服务器,以便可以将文件从FTP服务器复制到另一台计算机上的客户端,反之亦然。 我得到了Apache FtpServer,但对其使用感到有些困惑,并且正在寻找使用它的基本步骤。也许像这样: 做连接命令 登录 做一些事情… 问题答案: 让我使用非常有用的 Apache FtpServer 为您编写一个基本示例: 请注意,在服务器端,您不

  • 问题内容: 我正在尝试将图像从Android Phone(HTC Desire HD)上传到FTP服务器(在我的本地PC上)。图像将发送到FTP服务器,但已损坏。 并且方法(ftpClient.storeFile())引发IOException(错误的文件号) 请帮我。 这是损坏的图像链接: http://imageshack.us/photo/my- images/820/komikb.jpg/

  • 我正在尝试将FTP服务器上的多个文件移动到同一服务器上的不同目录。到目前为止,我已经编写了一个bash脚本,该脚本将登录并检索远程目录中的任何新文件,但ftp命令不支持“mv”命令。本质上,该脚本将下载新文件,然后在下载后将文件移动到同一服务器上的不同目录。请注意,每次文件名都会不同,因此通配符的使用很重要。 在你回答之前,请注意这需要自动化,所以使用像Filezilla这样的GUI对我没有帮助,

  • 问题内容: 纯粹出于好奇,Base64图像嵌入在哪些浏览器中起作用?。 我意识到对于大多数事情来说,通常不是一个好的解决方案,因为它会增加页面的大小-我很好奇。 一些例子: HTML: CSS: 问题答案: 更新 现在,所有主要浏览器都支持数据URI。从版本8开始,IE也支持嵌入图像。 现在,以下Web浏览器支持数据URI: 基于壁虎,例如Firefox,SeaMonkey,XeroBank,Ca