• 締切済み

ファイルのダウンロードプログラム

PHPでボタンをクリックするとファイルがダウンロードする物を作成しています。 ダウンロードするファイルが、 aaaa[半角スペース]bbbb.zipだとすると、 aaaa_bbbb.zipとアンダースコアに変換されてしまいます。 文字コードがShift-JISなので、恐らくそれが原因なのかなと思うのですが どなたか同じような現象に陥った方で、調査した方いらっしゃいましたら裏付けのある理由を教えてもらえないでしょうか? 宜しくお願いします。

みんなの回答

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

なんらかの理由があることは理解できますが、そういう迷惑なファイル名 をつけないというのが原則です PHPでダウンロードさせるのはheaderでやっていますか? こんな感じでできませんか? <? header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"aaaa bbbb.csv\""); print "test"; ?>

mukku0316
質問者

補足

はい。header関数でやっています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 行頭に「> 」がある行、すべてを指定する正規表現

    行頭に「> 」(半角「>」のあとに半角スペースが入っています)がある行、すべてを指定する正規表現を教えてください。 aaaaa > aaaa bbbb > bbbb このような文章だと、 > aaaa と > bbbb を指定する正規表現ということです。 お願いします。

  • zipファイルのダウンロードについて

    RapidshareなどからFlashGetなどでzipファイルをダウンロードするとzipファイルではなく、phpファイルが ダウンロードされます。なぜzipファイルが落とせないのでしょうか?

  • Excel関数 文字分割

    A列               関数の結果求めたい値 AAAA BBBB(半角スペース区切)     AAAA AAAA BBBB(全角スペース区切)    AAAA AAAA/BBBB(半角/区切)        AAAA AAAA/BBBB (全角/区切)       AAAA =LEFT(A1,FIND(" ",SUBSTITUTE(A1," "," "))-1) =LEFT(A1,FIND("/",SUBSTITUTE(A1,"/","/"))-1) Excelの関数で一回の関数で上記二つの関数を使用して 区切文字複数を考慮して文字分割したいのですが、 どのように実施すればよいかご教授ねがえますでしょうか? IF文を使うのかもしれないとは思いいろいろと試したのですが うまく出来ない為質問させて頂いたおります。

  • 指定パスファイルのファイル

    こんにちは。質問をさせてください。 メニュー画面でラジオボタンなどで項目を選択して 選択された項目ごとにPHPファイルを実行させたいと 考えています。 -------JavaScript---------------- function goWork() { if(areaV == "1"){ fm.action = "AAAA/BBBB.php"; }else{ fm.action = "CCCC/DDDD.php";   }   return true; } ----------------------------------------- 上記のような関数を作成しました。 areaVには値1or2が入るものとします。(JavaScript内で設定済みとする) この場合に起動するPHPファイルのパス指定の仕方(表記方法)が わかりません。 AAAA/BBBB.php(?), AAAA\BBBB.php(?), ・・・・ この表記はどのように記述すればよろしいでしょうか? 宜しくお願いいたします。

  • ファイルから読み込み

    お世話になっております。 テキストファイルを読み込んで、データベースに格納をしたいと思っております。 全角と半角、全角スペースや半角スペースなどが混在しているため 意図した通りに読み込めません。 test.txt -------------------------------------------------- 山田 太郎     ヤマダ タロウ   神奈川県○○○区1-2-3       0312345678 ・・・1\n\r 高橋 花子     タカハシ ハナコ  東京都○○○○区4-5-6       0312345678 ・・・1\n\r (カタカナは半角カタカナです。半角カタカナの後ろのスペースは半角スペースです。) sample.php(EUC) -------------------------------------------------- $fp = fopen($file_path, "r"); while (!feof($fp)) {  // テキストファイルがShift-JISなのでEUC-JPに変換  $row = mb_convert_encoding(fgets($fp), "EUC-JP", "Shift-JIS");  // 全角スペースは半角スペース2に変換  $line = str_replace(" ", " ", $row);  $d['name'] = trim(mb_substr($line, 0, 20));  $d['kana'] = trim(mb_substr($line, 20, 20));  $d['address'] = trim(mb_substr($line, 40, 40));  $d['tel'] = trim(mb_substr($line, 80, 20));    :    :  $d['flag'] = trim(mb_substr($line, 1300, 1)); } よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ダウンロードしたファイルが「壊れています」

    お世話になります。 次の現象について、困っています。どうしたらよいか教えてください。 あるサイトから、ファイルをダウンロードしました。 zipファイル、pdfファイル、wordファイルの3つで、zipは先のpdfを圧縮したものです。 しかし、zipについては解凍したフォルダが空、 他の2つについては「壊れている」というエラーメッセージが出てしまいます。 このサイトのファイル容量の表示は、 zip(25MB)、pdf(20MB)、word(52MB)なのですが、 ダウンロードされたファイルの容量は、 zip(6MB)、pdf(10MB)、word(7MB)です。 試しに、自分のPC(XP)内にあるzip、pdf、wordを開いてみましたが正常です。 ちなみに回線はISDNですが、このくらいの容量のファイルはよくダウンロードしているので、 支障はないと思います。早朝、回線がすいている時間にもやってみたのですが。 困ってしまいました。 よろしくお願いします。_(._.)_

  • ■が増えていく。

    ログファイルに文字を書き込むという単純なphpファイル(uho.php)について、 ******* <?php $LINES = file('log.dat'); if ($_POST['write']) write(); function write(){   global $LINES;   $contents = $_POST['contents'];   $data = "$contents<>\n";   array_unshift($LINES, $data);   $FILE = fopen('log.dat', 'w');   $log= implode("",$LINES);   fputs($FILE,$log);   fclose($FILE); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS"> </head> <body> <form method="post" action="uho.php"> <textarea name="contents" cols="60" rows="5"></textarea><br> <input type=submit name=write value=aaaa> </form> <? for($i=0; $i<count($LINES) ; $i++) print $LINES[$i]."<br>"; ?> </body> </html> ***** と記述しました。 phpエディタは、「phpエディタ standalone」を使用していて、文字コードはEUCがいいとのことですが、参考にしているサイトのPHPスクリプトがShift_JIS形式で作成しているようなので、とりあえずShift_JISで保存しています。ApacheやPHP等の環境を一気にインストールできる「phpdev423」を用いてWin XP上で走らせていることにより動作確認をしています。 それで困っていることがあるのですが、どうやら文字を転送すると、ログファイルをメモ帳でひらくと、 aaaa<> bbbb<> cccc<>■ dddd<>■■ eeee<>■■■ ffff<>■■■■ という風に■が並んでいきます。実際の■ではなく、これより幾分か小さい黒い正方形が表示されます。 このログファイルにさらにもじを書き足した場合、 1111<> aaaa<> bbbb<>■ cccc<>■■ dddd<>■■■ eeee<>■■■■ ffff<>■■■■■ となります。なぜこういった現象が起こるかがわかりません。

    • ベストアンサー
    • PHP
  • phpでzipファイルダウンロード後の削除について

    phpでzipファイルダウンロード後の削除について phpにおいて、ボタンをクリックしたときに、サーバ内の ディレクトリの中身をzip圧縮してダウンロードを行う処理を 作成し、ダウンロード後はサーバ内のzipファイルを 削除したいと考え、下記のような流れでプログラムを作成しました。 //1.zipファイルの作成 shell_exec("zip -r file.zip targetdir"); //2.HTMLヘッダ Content-type ・・・ //3.readfileでファイル読み込み readfile(file.zip); //4.ファイル削除 shell_exec("rm -f file.zip"); 3.までは上手く動作して、意図したzipファイルを ダウンロードできるのですが、 4.の動作が、3.でのダウンロードダイアログで ・「保存」してダウンロードすると動作して削除する。 ・「キャンセル」してダウンロードせずダイアログを 閉じると削除されずサーバに残ってしまう。 となってしまいます。 ちなみに一旦「保存」を選択して、ダウンロード途中に 「キャンセル」を選択して中断しても削除されませんでした。 ダウンロードダイアログでの操作に関わらず作成した zipファイルを削除したいのですが、どのようにすればいいか わかりません。 shell_exec関数をunlinkなどに変えて見ても結果は同じでした。 アドバイスを頂ければと思い質問させていただきました。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • ファイルがダウンロードできません。

    はじめまして。 Zipファイルやexeファイルがダウンロードできずに困っています。 原因が全くわかりません。ご教授お願いします。 現象は、ダウロードしようとすると通常通りダイアログボックスが表示され、 デスクトップに保存を選択してエラーメッセージなどなくダウンロードが完了します。 しかしながら、デスクトップ上にファイルがなく、検索してもみつかりません。 どんな原因が考えられるでしょうか。 よろしくお願いします。

  • ファイルの一部をhtmlにしたい

    初心者です。 PHPを使ってできるかわからないのですが、 CGIで出力されたファイル(a.dat)の一部を違うHTMLファイル(b.html)にしたいと思っています。 この場合どうやったらいいでしょうか? CGIの掲示板などをせっちするのはできるのですが、 PHPは初めてです。できるかどうかわかりませんが 質問させてください。よろしくお願いします。 ---a.dat----- aaaa bbbb cccc ------------ ---b.html---- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS" /> <meta name="robots" content="noarchive" /> <title>pickup</title> </head> <body> bbb </body> </html> ---------------

    • 締切済み
    • PHP