• 締切済み

header('Location:...');を用いてIE上に2バイトファイル名のWordやExcel表示について

header('Location:・・・・・・'); を用いて、IEブラウザ上に、ワードやエクセルファイルを開いて表示させています。 しかし、2バイトを用いたファイル名(例えば、ほげほげ.doc)だと、 文字バケを起こし、上手く表示されません。 (もちろん、英数半角のファイル名だと上手く表示できています) header('Location:・・・・・・'); を用いる場合、どのような工程でエンコード、もしくはデコードが 必要となりますでしょうか? お詳しい方がいらっしゃいましたら、ご教授下さいませ。 よろしくお願い致します。 ちなみに、HogeHogeフォルダ配下にある、ほげほげ.doc というワードファイル名だと Unicodeになるようで、以下のエラーが表示されます。 ---------------------------------------------------------------- Forbidden You don't have permission to access /HogeHoge/ƒeƒXƒg.doc on this server. ____________________________________________________________ Apache/2.0.55 (Win32) PHP/4.4.2 Server at localhost Port 80 ---------------------------------------------------------------- ※実際はfefXfg.docみたいな文字で表示されてます ⇒ ƒeƒXƒg.doc

  • THUBAN
  • お礼率76% (771/1002)
  • PHP
  • 回答数1
  • ありがとう数2

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

実際のファイル名がEUCやSJISなんじゃないですか?

THUBAN
質問者

お礼

ファイル名をエンコードしてURL送りすることで自己解決しました。 ありがとうございました。

関連するQ&A

  • 環境をかえたら header(Location:)に不具合が?

    ローカル環境からWEBサーバに作ったPHPファイルを移動させたのですが、 header(Location:)がうまく動かなくなってしまいました。 アドレスがおかしいのかと思って いくつか試してみたんですが ファイルによってうまく行くのと行かないのがあるようです。 傾向としては $chkに5が入っていたら test.phpに移動する。 if($_SESSION['chk'] != '5'){  header('Location: ./test.php');  exit; } はうまく動くのですが ifでいくつか処理を行ったあとに if(isset($_POST('submit')){  いくつかの処理  header('Location: ./login.php'); } とするとうまく動かないという状態です。 どのようなケースが考えられるでしょうか アドバイスよろしくお願いします。

    • ベストアンサー
    • PHP
  • 携帯でのheader Locationについて

    携帯を対象としたHPをphpで作成しています。 ファイルから$urlを取得して、 header("Location: $url"); にて、ジャンプさせるのですが、iモードだとうまく$urlのHPにジャンプするのですが、Vodafoneではうまくジャンプできず、エラー画面が表示されてしまいます。 auではまだ試していないので分かりませんが、機種や会社によって上記のようなLocationは使えないのでしょうか? なぜ、うまくジャンプしないのか分かりません。 なんか良い方法・理由を教えてください。よろしくお願い致します。

    • 締切済み
    • PHP
  • header Locationに関するエラー

    こんにちわ。質問があります。 以下のコードに問題はありますか? "http://xxx.xxx.xxx.html"(仮名)というURLからアクセスした場合は リンク元を表示し、その他からのアクセスの場合は、google.co.jpに飛ぶというプログラムです。 header:Locationの使い方がおかしいらしく、エラーとなってしまいます。 どこに問題がありますでしょうか?ご教示いただけますと大変助かります。 どうぞよろしくお願い申し上げます。 ------------------------------------------------------------- <?php $referer=$_SERVER['HTTP_REFERER']; echo 'referer = '; echo $referer; echo '<br>'; if($referer == "http://xxx.xxx.xxx.html") { echo 'from '; echo $referer; } else { $url="http://www.google.co.jp/"; header("Location: $url"); exit; } ?>

    • ベストアンサー
    • PHP
  • MSワードのファイル名の表示が...

    MSワードのファイル名の表示について 普通ですと黒色で表示されるのでしょうが、 突然、濃い紺色に表示されてしまいました。 幾つかのDocファイルは、黒色表示ですが、 紺色に変わってしまったものがあります。 もとに戻す方法が分かりません。 どうしたらよいのでしょうか?

  • Wordファイル名がヘンに。中身も読めません。

    Windows XP Word2002です。 マイドキュメント内のWordファイルを編集しようとフォルダを開いたところ、 いくつかのファイル名が 「~$ファイル名.doc」というようになっていました。 また、ファイル名の前にWordの画像イラストがありますが、その画像も 薄くなっており、開くと文字化けを起こしていてまったく読めず、 その中身が壊れているような感じなのです。 このファイルはもう使えないのでしょうか。 壊れているなら、直せないのでしょうか。 どうかよろしくお願いします。

  • Wordファイルロックされて保存出来ない...

    Windows Me上で,MS-Word2000を使用しております. (以下の質問はこの組み合わせに限らず該当します.) 文書ファイル「hogehoge.doc」を編集しているとき, 何らかの原因でWordが落ちたとします. あーあと思いながらも保存しておいた「hogehoge.doc」をクリックして 立ち上げたとき, 「ファイルがロックされています」と言う旨のメッセージが出て, 「読み取り専用」とするか「通知」するかのボタンが出ますが, これを「通知」(しかも通知先は自分自身であっても)とした場合であっても, 「hogehoge.doc」の名前で保存しようとすると,「読み取り専用です」と出て, 「hogehoge.doc」では保存出来なくなってしまいます. 因みに「hogehoge.doc」のプロパティを見ても,読み取り専用の欄には チェックは入っていないのです. 一旦ログアウトしてから再びログオンすれば,保存出来るようになります. でも一旦ログアウトして・・・では面倒なので,上記のような事態のとき, 読み取り専用を解除して「hogehoge.doc」の名前で保存出来るようにする方法が ありましたら,教えて下さい.<(_ _)> 宜しくお願いします.

  • header('Location:xx')について

    こんにちは、外国人ですから、下記の内容は理解し難いと思ってますが、どうぞよろしくお願いします。 質問: A画面に二つボタンがあります、PDFdownloadボタンと戻るボタン 流れ: (1)A画面のPDFdownloadボタンを押下して、pdfファイルを出力します。 (2)A画面の戻るボタンを押下して、B画面へ遷移します。 現象: pdfファイルが正しく出力しましたが、戻るボタンを押下すると、B画面の内容はA画面の下に縦にダブって表示されました。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー // B画面へ戻る if(isset($_POST["back"])){ header('Location: ./B.php'); goto done; } //PDFを出力する if(isset($_POST["download"])){ if ( isset( $_SESSION["FILEPATH"] ) && $_SESSION["FILEPATH"] != "" && isset( $_SESSION["FILENAME"] ) && $_SESSION["FILENAME"] != "" ) { downloadByStream( $_SESSION["FILEPATH"]."\\".$_SESSION["FILENAME"], $_SESSION["FILENAME"] ); } } done: 関数downloadByStreamは共通関数で管理しています。 function downloadByStream($filename, $title) { $ua = $_SERVER ["HTTP_USER_AGENT"]; $file = $filename; header ( "Cache-Control: public" ); header ( 'Pragma:public' ); if (! preg_match ( "/Firefox/", $ua )) { header ( "Content-Type: application/force-download; charset=Shift_JIS;" ); $title = mb_convert_encoding( $title, 'SJIS-win', 'auto'); $file = mb_convert_encoding( $file, 'SJIS-win', 'auto'); } header ( "Content-Transfer-Encoding: binary" ); header ( 'Content-Disposition: attachment; filename="' . $title . '"' ); header('Content-Length: '.filesize($file)); readfile($file); flush(); ob_flush(); } ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • wordファイルをメールに添付するとファイル名が文字化け

    メールにwordファイルを、doc形式のまま添付して送りたいのですが、 試しに自分に送ったところ、色々問題が起こりました。 以下の状態です。 1、ファイル名が文字化け。 2、開こうとすると、「ファイル名またはパスが正しくありません(中略)表示されているダイアログボックスでファイルを検索して下さい」 と出て、文章が読めない。 3、そこからファイル~開くで開くと読める。 この状態を、docのまま、ファイル名が文字化けせず、普通にクリックなりで読めるようにしたいのです。 使用PCはDELLインスパイロン530デスクトップです。 OSはXP、wordは今時2000を使用しています。 wordファイルは100kb近くあります。 きっとレベルの低い質問だと思いますが、よろしくお願いします。

  • Word、Excelのファイル名に自動的に名前を付加する方法教えてください!

    こんにちは。 タイトルの通りなのですが他の人が作成したWord文書を自分のパソコンで表示、修正、上書き保存した際に、ファイル名に特定の文字列(ユーザー名等)を付加させることは可能でしょうか? イメージとしては tasklist_Suzuki1025.docといった感じで元のファイル名+特定文字列となるようにできないかと考えております。 よろしくお願いいたします!

  • WORDのファイルが開けない?

    win-98,word-97を使っている初心者ですが、今まで問題なく開けていたwordのファイル(例えば、メール原稿.doc)を開こうとしたら、今回突然に(原因不明で、同じ名前の隠しファイル名が現れ)「既に保存されている‘メール原稿.doc‘を置き換えますか」という表示が出て、「はい」または「いいえ」のいずれをクリックしても、表示は消えますが(隠しファイル名は存続)、なにも出てこずファイルを開くことができません。 どうすれば、これまでのように問題なく、WORDのファイルを開くことができるでしょうか。初心者にもわかるように 具体的な手順を教えて頂ければ幸甚です。 因みに、EXCEL-98のファイルは問題なく開けます。

専門家に質問してみよう