スレッド表示 | フラット表示〕 全トピック 920 件中 481 番目 次≫ ≪前

ダウンロード先のパス指定

created: 2005-02-02 15:54 | modified: 2005-02-04 10:29 | reply: 7

[2092] ダウンロード先のパス指定

user: ひろ | created: 2005-02-02 15:54
いつも参考にさせていただいています。

本日は初めて質問します。

現在、サーバーはMiracleLinux3.0+Apaceh2.0+php4.3+posqgreSQL7.4、クライアントはWindows2000Pro+IE6.0の作業環境です。

<?php
header("Content-Type:text/html;charset=EUC-JP");
header("Content-Type: application/octet-stream");

$path = "../csv";//保存先
$filename = $pass . $_GET['DelvNo'] . ".csv";
header("Content-Disposition: attachment; filename=\"$filename\"") ;

としてデータベースからダウンロードしてきたcsvファイルの保存先フォルダを指定しようとしているのですが、「ファイルのダウンロード」ダイアログがファイル名(このスクリプトのphpファイル名になる)、ファイルの種類(phpになる)を誤認してしまい、先に進むことができません。
なお、このコーディングでもパス指定をやめると正常に作動します。

問題解決のヒントをいただければ幸いです。
よろしくお願いします。
reply: 2093 返信 編集 削除

[2093] ダウンロード先のパス指定

user: ひろ | created: 2005-02-02 15:56
すみません。

$filename = $path . $_GET['DelvNo'] . ".csv";

でした。タイプミスです。
よろしくお願いします。

ひろ
Parent: 2092  reply: 2094 返信 編集 削除

[2094] $_FILES['DelvNo']['name']

user: toto | created: 2005-02-03 02:34
しろうとです。まとはずれなとうこうだったらよみすててください。

filenameをよびだすのに、つぎのほうほうはどうすか?

$filename=$path.$_FILES['DelvNo']['name']

これだとかくちょうし".csv"をていぎしなくてもfileそのもののなまえをうけわたしてくれます。

かんじへんかんさーばーがつながらないのでひらがなのみのとうこうです。すみません。
Parent: 2093  reply: 2096 返信 編集 削除

[2096] $_FILES['DelvNo']['name'] テストしました

user: ひろ | created: 2005-02-03 09:19
totoさん。回答ありがとうございます。

やってみましたがやはりファイル名とファイルタイプを誤認するようです。

こちらでももう少し手を考えてみます。
ありがとうございました。

ひろ
Parent: 2094  reply: 2097 返信 編集 削除

[2097] ヘッダーを沢山つけてみる

user: シロウ | created: 2005-02-03 11:06
<?php
$buff = "colum1,colum2,colum3,colum4,colum5";
$filename = date('Ymd',time()).".csv";

header("Accept-Ranges: none");
header("Content-Disposition: attachment; filename={$filename}");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ". strlen($buff) );
header("Content-Type: text/octet-stream");

echo $buff;
?>

Apacheの設定も関係あったりした記憶が・・・。
Parent: 2096  reply: 2098 返信 編集 削除

[2098] ヘッダーを沢山つけてみましたが・・・

user: ひろ | created: 2005-02-03 11:57
シロウさま。回答ありがとうございます。

早速、試してみましたが
$path = "../csv";//ファイル置き場
をつけると以前と同様、誤認します。

もう少しがんばってみます。
ありがとうございました。

ひろ
Parent: 2097  reply: 2099 返信 編集 削除

[2099] すみません。よく読んでいませんでした。

user: シロウ | created: 2005-02-03 18:22
たぶんPHPからではパス指定できないはずです。
この様なものはブラウザが強く関係しているのでパス指定は無理と思います。

以下はIEでActiveXによるものです。
<html lang="ja">
<head>
<title>テスト</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<?php
echo "colum1,colum2,colum3,colum4,colum";
?></body>
</html>

<html lang="ja">
<head>
<title>テスト</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<script language="JavaScript" runat="client">
var ObjIE; // IEオブジェクト
var timerID = 0; // タイマーID

// ------------------------------------------------
// 実行関数
function htaMain()
{
ObjIE = new ActiveXObject("InternetExplorer.Application");
ObjIE.Visible = false; // ブラウザの表示/非表示
ObjIE.Silent = true;

ObjIE.Navigate('http://localhost/csv.php',4);
timerID = setInterval("task()",300);
}

// ------------------------------------------------
// タスク関数
function task()
{
var obj = null;

if (!ObjIE.Busy && ObjIE.Document.readyState == "complete"){
mkcsv();
}
}

// ------------------------------------------------
// CSV作成
function mkcsv()
{
try { // 全ての例外処理 101
var ojbfs = new ActiveXObject("Scripting.FileSystemObject");
var shell = new ActiveXObject("WScript.Shell");
var path = shell.SpecialFolders("Desktop");

var filename = path + "\\test.csv";
var fp = ojbfs.CreateTextFile(filename, true);

fp.WriteLine(ObjIE.Document.body.innerHTML);

fp.Close();
}// try 例外処理
catch (exception) { // 例外101 をキャッチ
document.all["echo"].innerText = "書き込みエラー\r\n";
return;
}
clearInterval(timerID);
}
htaMain();
</script>
</head>
<body>
<span id="echo" style="font-size: 12px;">出力</span>
</body>
</html>
Parent: 2098  reply: 2101 返信 編集 削除

[2101] ActiveXですか・・・

user: ひろ | created: 2005-02-04 10:29
シロウさま。

回答文ありがとうございました。
phpでは無理ということで一つの解決を見ました。
少し方向性を変えて組み立て直していきます。

サンプルスクリプトありがとうございました。
参考にさせていただきます。

ひろ
Parent: 2099  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 481 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑