0

データベーステーブルに保存されているパス(ローカルサーバーパス)でファイルをダウンロードしたいのですが、htmlテーブルでデータベースを表示するコーディング部分を実行しましたが、テーブルをハイパーリンクする方法がわかりませんサーバーに保存されている出力フォルダーからファイル (任意のタイプとサイズ) をダウンロードします。jspコードは次のとおりです。

<%@ page import="java.io.*,java.sql.*"%>

<%
String id=request.getParameter("id");
Class.forName("com.mysql.jdbc.Driver").newInstance();  
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306  /ksa","root","root");  
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("Select id,file_path,file_date from file12 where id like '"+id+"%'"); 
%>
<table cellpadding="15" border="1">
<%
while(rs.next()){
%>
<tr>
<td><%=rs.getString("id")%> </td>
<td><%=rs.getString("file_path")%> </td>
<td><%=rs.getString("file_date")%> </td>
</tr>
<%}%>
</table>

上記のコードは、データベースから html テーブルにテーブルを取得します。

4

2 に答える 2

1
 <%@ page import="java.io.*,java.sql.*"%>
 <%
   String id=request.getParameter("id");
   Class.forName("com.mysql.jdbc.Driver").newInstance();  
   Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ksa","root","root");  
   Statement st=con.createStatement();
   ResultSet rs=st.executeQuery("Select id,file_path,file_date from file12 where id like '"+id+"%'"); 
   %>
  <table cellpadding="15" border="1">
  <%
    while(rs.next()){
  %>
  <tr>
    <td><a href="<%=rs.getString("file_path")%>"> click here to download the file with  id :<%=rs.getString("id")%> </a> </td>

    </tr>
 <%}%>
</table>
于 2012-05-08T10:07:21.547 に答える
1

rs.getString("file_path") がパスを返す場合は、パスが /home/Desktop/output/something.jpeg であることを意味します。指定されたリンクをクリックすると、必ず PAGE NOT FOUND (404) Exception が表示されるため、ダウンロードできません。

">ファイルのダウンロードはこちら

URL は次のようになります。

http://localhost:8080/prjname/home/Desktop/output/something.jpeg

したがって、この状況では、パスを 1 つのサーブレットに渡すことができ、このサーブレットを介してファイルをダウンロードできます。

于 2012-05-10T09:32:39.880 に答える