我得到一个例外:“ URI方案不是文件”
我正在做的是尝试获取文件名,然后将该文件(从另一个服务器)从servlet中保存到我的计算机/服务器上。
我有一个名为“ url”的字符串,从这里开始是我的代码:
url = Streams.asString(stream); //gets the URL from a form on a webpage
System.out.println("This is the URL: "+url);
URI fileUri = new URI(url);
File fileFromUri = new File(fileUri);
onlyFile = fileFromUri.getName();
URL fileUrl = new URL(url);
InputStream imageStream = fileUrl.openStream();
String fileLoc2 = getServletContext().getRealPath("pics/"+onlyFile);
File newFolder = new File(getServletContext().getRealPath("pics"));
if(!newFolder.exists()){
newFolder.mkdir();
}
IOUtils.copy(imageStream, new FileOutputStream("pics/"+onlyFile));
}
导致错误的行是这一行:
File fileFromUri = new File(fileUri);
我添加了其余的代码,以便您可以看到我正在尝试执行的操作。
URI“ scheme”是位于“:”前面的内容
错误消息告诉您new File(fileUri)
仅适用于“文件:” URI(在当前系统上引用路径名的URI),而不适用于“ http”之类的其他方案。
基本上,“ file:” URI是指定File
类的路径名的另一种方法。这不是告诉File
使用http从网络中获取文件的神奇方法。
问题内容: 我需要为我的项目创建一个自定义URI方案。即 -不透明的表示 -分层表示。 如何将方案添加到Java URI类?或者,如何使Java URI理解我的方案,以便可以在代码中使用它? 欢迎提供具体示例。 谢谢。 问题答案: 您确定需要创建一个新的URI方案吗? 创建特定于实现的方案被认为是不好的做法。 看到: http://infomesh.net/2001/09/urischemes h
问题内容: 我正在尝试让我的Rails应用程序通过Sidekiq处理后台作业,并将Sidekiq与Redoku上的Redis连接。这是我的: 这是我的初始化器文件: 该变量在Heroku中设置为。按照此处提供的说明,我还添加了一个初始化器文件。这里是内容: 我收到以下错误,不确定如何解决。Heroku也抛出H10错误 更新: 我在Heroku上回滚到以前的版本,并从gemfile中删除了redis
据我所知,浏览器将在这两种情况下正确地呈现链接。
问题内容: 方案相对URL(网络路径引用)是我刚刚发现的-您未指定URL方案,而是从当前上下文中选择它。 例如: 将解析为当前方案是否为HTTPS或不是。 这似乎是解决那些在SSL页面上调用外部脚本或图像的烦人问题的简单方法,而不会出现可怕的错误,即页面上的某些内容不安全。 好处似乎显而易见,但是我似乎无法找到关于此的大量信息,并且想知道是否有人对方案相对URL有任何经验或参考(好还是坏)? 虽然
我试图找到一种方法来配置骆驼endpoint,使用从骆驼上下文中路由中的endpoint声明中引用的Spring bean,但它不起作用。 例如,有时用许多参数定义endpointURI是非常可怕的(!!),用bean及其属性配置endpoint会容易得多。(或者更好的是,在XML中配置endpoint时,或者元素应该有像常规bean这样的子元素,我们可以在其中配置endpoint的参数)。 下面
我刚开始在Java程序(为Windows 7制作)中使用Jsch进行SSH连接。我遇到了一个问题,将私钥合并到我的程序中。我使用以下代码: 其中“auth”是同一个包中的文件夹。好消息是,当在Eclipse中运行它时,一切都很好,但是当作为jar运行它时,一切都失败了。给出的错误是:“IllegalArgumentException:URI不是分层的”。 我知道这个错误与路径名和使用URI作为文件