代号为一个图像选择器提供了错误的路径

时间:2018-04-28 15:20:33

标签: codenameone

我想上传一个带有代号的图像问题是当我上传它时我得到了错误的图像名称和路径,让我解释一下,这就是代码:

 imaged.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent evt) {
            Display.getInstance().openImageGallery(new ActionListener() {
                public void actionPerformed(ActionEvent ev) {
                    if (ev != null && ev.getSource() != null) {
                        String filePath = (String) ev.getSource();
                        int fileNameIndex = filePath.lastIndexOf("/") +1;
                        String fileName = filePath.substring(fileNameIndex);
                        System.out.println("image     : "+  fileName);


                    }
                }
            });
        }
    });
    c3.add(imaged);

我希望获取图像名称,将其插入我的数据库中,即gott所在的lint:

C:/Users/Emel/AppData/Local/Temp/temp8005230168902905005..png

我选择的图像托管在www文件夹下的wamp服务器上:

http://localhost/PiWeb1/TeamFlags/es.png

即使文件名错误也是错误的,我怎样才能得到真正的路径和文件名!

1 个答案:

答案 0 :(得分:1)

这在设备上有点问题。它们在文件系统/媒体上非常不一致,因此我们尝试通过将选择复制到一边来复制模拟器中的一些问题。

原因很简单,就是说您可以访问您可以阅读的手机图像目录,并在未经用户同意的情况下上传所有图像。因此,他们操作系统会复制图像,并且只允许您访问该数据。

你可能在设备上有更好的运气,如果不是你可能会有更好的运气:https://www.codenameone.com/blog/native-file-open-dialogs.html

作为旁注,您的网址不会是一个http网址,而是一个文件网址。

相关问题