url = new java.net.URL(s)
对我不起作用。
我有一个字符串C:\apache-tomcat-6.0.29\webapps\XEPServlet\files\m1.fo
,需要创建一个链接并将其提供给我的格式化程序以便输出,但收到格式错误的网址。似乎它不会使我的字符串成为url。
我还想提一下,文件m1.fo
文件位于我的webapp \ product \中的文件夹中,我给出了字符串的完整路径,如:getServletContext().getRealPath("files/m1.fo")
。我做错了什么?我怎样才能收到网址链接?
答案 0 :(得分:5)
可以使用URL
API从文件路径中获取java.io.File
:
String path = "C:\\apache-tomcat-6.0.29\\webapps\\XEPServlet\\files\\m1.fo";
File f = new File(path);
URL url = f.toURI().toURL();
答案 1 :(得分:1)
尝试:file:/// C:/apache-tomcat-6.0.29/webapps/XEPServlet/files/m1.fo
答案 2 :(得分:1)
写file:///是不可取的。确实它适用于Windows系统,但在unix中 - 存在问题。 而不是使用
myReq.put("xml", new String []{"file:" + System.getProperty("file.separator") +
getServletContext().getRealPath(DESTINATION_DIR_PATH) +
System.getProperty("file.separator") + xmlfile});
你可以写
myReq.put("xml", new String [] {getUploadedFileURL (xmlfile)} );
,其中
public String getUploadedFileURL(String filename) {
java.io.File filePath = new java.io.File(new
java.io.File(getServletContext().getRealPath(DESTINATION_DIR_PATH)),
filename);
return filePath.toURI().toURL().toString();
答案 3 :(得分:0)
文件系统路径不是URL。 URL将需要一个协议前缀。要引用文件系统,请在路径前使用“file:”。