时间:2011-01-14 21:51:20

标签: java url

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")。我做错了什么?我怎样才能收到网址链接?

4 个答案:

答案 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:”。