SQL SERVER 2015のテーブルに保存したエクセルファイルをPHPのリンクからダウンロードしたい。
ファイル名をクリックした際、DBに格納されているエクセルファイルをダウンロードできるようにしたいのですが、FILE_NM カラムの取得ができません。
格納されているエクセルファイルをダウンロードする方法をご教示ください。
以下、テーブル作成時のコードと作成途中のコード
SQL
1USE TEST_SERVER 2CREATE TABLE TEST(KUBUN varchar(2), FILE_NM varbinary(max),VERSION varchar(10),UPDATE_DT datetime) 3INSERT INTO TEST(KUBUN,FILE_NM,VERSION,UPDATE_DT) 4SELECT '1',img.BulkColumn,'1.0',sysdatetime() 5FROM (SELECT * FROM OPENROWSET(BULK N'C:\test.xlsm',SINGLE_BLOB) AS i ) img
PHP
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <title>Excelダウンロードテスト</title> 6 <style type="text/css"> 7 table{ 8 border-color:black; 9 border-style:solid; 10 boder-widht:1px; 11 } 12 td{ 13 border-color:gray; 14 border-style:solid; 15 boder-widht:0.5px; 16 } 17 </style> 18 </head> 19 <body> 20 <table> 21 <tr> 22 <td>ファイル名</td> 23 <td>バージョン</td> 24 <td>更新日時</td> 25 </tr> 26 <?php 27 //PDOオブジェクトの生成 28 $serverName = 'TEST_SERVER'; 29 $database = 'TEST'; 30 $uid = 'sa'; 31 $pwd = 'Admin'; 32 $conn = new PDO( "sqlsrv:server=$serverName;Database = $database", $uid, $pwd); 33 34 $sql = 'SELECT FILE_NM,VERSION,UPDATE_DT FROM TEST WHERE KUBUN = 1'; 35 36 foreach ($conn->query($sql) as $row) 37 { 38 print("<tr><td>".$row['FILE_NM']."</td>"); 39 print("<td>".$row['VERSION']."</td>"); 40 print("<td>".$row["UPDATE_DT"]."</td></tr>"); 41 } 42 43 $stmt = $conn->query($sql); 44 $img = $stmt->fetchObject(); 45 46 echo $img->contents; 47 48 $conn = null; 49 ?> 50 </body> 51</html> 52
あなたの回答
tips
プレビュー