4

いくつかのローカル ディスクに保存されている pdf ファイルがあります。 :/filesDir/ ユーザーがクリックした..現在、以下のようなコードがあります。

<% 
String sourceDirectory = "D:\\filesDir\\";
File f = new File(sourceDirectory);
String [] fileNames = f.list();
File [] fileObjects= f.listFiles();
%>
<UL>
<%
for (int i = 0; i < fileObjects.length; i++) {
if(!fileObjects[i].isDirectory()){
%>
<LI>
<A HREF="<%="D:/filesDir/"+fileNames[i] %>"><%= fileNames[i]%></A> 
&nbsp;&nbsp;&nbsp;&nbsp;
(<%= Long.toString(fileObjects[i].length()) %> bytes long)
<%
}
}
%>
</UL>

上記のコードから、filesDir フォルダーからすべての pdf ファイルを jsp ページに表示できますが、特定の pdf ファイル (abc.pdf など) をクリックすると、コントロールが D:/filesDir/abc に移動する代わりに.pdf、コントロールは localhost:8080/myapp/D:/filesDir/abc.pdf... に移動します。

アプリケーション固有のパス (つまり、locahlhost:8080/myapp/) を削除して、リンクから PDF ファイルを開くにはどうすればよいですか??

4

4 に答える 4

2

これが宿題や演習でない限り、既存のソリューションを検討します。サーバー内のファイルを参照するためのスタンドアロン ソリューションとして、CKEditor 用の FileManager プラグインを使用しましたが、魅力的に機能します。

ホームページは次のとおりです: http://labs.corefive.com/projects/filemanager/

ソースへのリンクは次のとおりです: https://github.com/simogeo/Filemanager/tree/master/connectors/jsp

既存のアプリに適応するのは非常に簡単です。ダウンロードして、filemanager.config.js ファイルを調整するだけです。

ここに画像の説明を入力

于 2012-12-20T04:36:22.120 に答える
2

問題を解決するには、リンク行を次のように書き直します

<A HREF="<%="file://D:/filesDir/"+fileNames[i] %>"><%= fileNames[i]%></A> 

ただし、サーバー自体以外の他のシステムでもファイルにアクセスしたい場合は、ファイルをWebディレクトリに移動してから、相対パスを使用してアクセスする必要があります

于 2012-12-20T04:31:52.527 に答える
0

以下のコードを試してください。ChromeとIEで正常に動作します。

<%@page import="java.io.File"%>
<html>
<body>
    <%
        String sourceDirectory = "D:\\books";
        File f = new File(sourceDirectory);     
        File[] fileObjects = f.listFiles();
    %>
    <UL>
        <%
            for (int i = 0; i < fileObjects.length; i++)
            {
                if (!fileObjects[i].isDirectory())
                {%>
                    <LI><A HREF="file:\\\<%=fileObjects[i].getAbsolutePath()%>"><%=fileObjects[i].getName()%></A>
                        &nbsp;&nbsp;&nbsp;&nbsp; 
                        (<%=Long.toString(fileObjects[i].length())%>    bytes long) 
                <%}
            }%>
    </UL>
</body>
</html>
于 2012-12-20T04:52:48.687 に答える
0
<%@ page import="java.io.*"%>
<%
FileOutputStream out; 
try{
out = new FileOutputStream("C://Hello.txt");
new PrintStream(out).println ("All glitters are not gold");
out.close(); 
}
catch (IOException e){
out.println ("Unable to write to file");
}
%>
于 2013-01-01T13:16:23.290 に答える