2016-04-12 7 views
1

Zuerst habe ich eine Datei in MySQL als BLOB-Typ hochgeladen. Ich kann den Inhalt dieser Datei mit Open Value im Editor von MySQL DB anzeigen. Dann habe ich diese Datei heruntergeladen und es gibt keinen Inhalt und die Dateigröße ist 0 Byte.Dateigröße ist 0 Byte (Dateianwendung mit Struts2 und MySQL herunterladen)

My-Code ist wie folgt:

JSP

<td align="center"> <s:url action="downloadFile" var="urlTag" escapeAmp="false"><s:param name="work_id"><s:property value="%{#request.workid}"/></s:param> </s:url> 
<a href="<s:property value="#urlTag" />">Download</a><br> </td> 

struts.xml

<action name="downloadFile" class="com.sales.action.DownloadFileAction"> 
<result name="success" type="stream"> 
<param name="contentType">application/octet-stream</param> 
<param name="inputName">inputStream</param> 
<param name="contentDisposition">attachment;filename="${fileName}"</param> 
<param name="bufferSize">4096</param> 
</result> 
</action> 

Action.java public class DownloadFileAction erstreckt ActionSupport {

private InputStream inputStream; 
private String fileName; 
private int work_id; 
private long contentLength; 

public DownloadFileAction() { 

} 

public int getWork_id() { 
    return work_id; 
} 

public void setWork_id(int work_id) { 
    this.work_id = work_id; 
} 

public void setInputStream(InputStream inputStream) { 
    this.inputStream = inputStream; 
} 

public void setContentLength(long contentLength) { 
    this.contentLength = contentLength; 
} 

public void setFileName(String fileName) { 
    this.fileName = fileName; 
} 

public long getContentLength() { 
    return contentLength; 
} 

public String getFileName() { 
    return fileName; 
} 

public InputStream getInputStream() { 
    return inputStream; 
} 

public String execute() throws Exception { 
    DevWorkInfoDAO dao = new DevWorkInfoDAO(); 
    List tmp = new ArrayList(); 
    tmp = dao.fileDownload(work_id); 

    fileName = tmp.get(0).toString(); 
    Blob b = (Blob) tmp.get(1); 

    inputStream = b.getBinaryStream(); 

    return SUCCESS; 
} 

}

DAO.java

String sql = "SELECT * FROM salesmanagementsystem.devorder_file_tbl where id_devorder = "+work_id; 

System.out.println(sql); 

ResultSet rs = stmt.executeQuery(sql); 

while (rs.next()) { 

DevOrder_File_Tbl dev = new DevOrder_File_Tbl(); 

dev.setId(rs.getInt("id")); 

dev.setFile_name(rs.getString("name_file")); 

dev.setFile(rs.getBlob("file")); 

tmp.add(dev); 

} 

return tmp; 
+0

Was ist die Frage hier? – Rao

+0

Wie kann ich die Originaldatei von MySQL Blob Type bekommen? –

+1

Wenn Sie eine Antwort auf Ihre Frage gefunden haben, dann antworten Sie und akzeptieren Sie es. –

Antwort

0

In struts.xml, vergessen Sie nicht die ContentLength zu schreiben.

<param name="contentLength">contentLength</param> 
Verwandte Themen