PHPにてロック状態でのWord保存方法

このQ&Aのポイント
  • PHPを使用して、ロック状態でWordを保存する方法について説明します。
  • ユーザーによる編集を制限し、保存を促すために、PHPで以下のコードを使用します。
  • 一般の方々が編集できない程度のロックをかけることで、データの保護を実現できます。
回答を見る
  • ベストアンサー

PHP にて ロック状態でのWord 保存

PHP にて ロック状態でのWord 保存 PHPにて下記のコードを入れ、データをMS word保存しています。 header("Pragma: public"); header("Content-Type: application//vnd.ms-word"); header("Content-Disposition: attachment; filename=data.doc"); これを、ダウンロードしたユーザーに編集させないようにロックさせ保存させたいのですが、何か方法はありますでしょうか? ※1)PDFでのダウンロードはしません。 ※2)一般の方々が編集できないロック程度で十分です。 以上、よろしくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんにちは。 あんまり意味がないような気がしますが・・・、 その手の議論はやめときます。 >一般の方々が編集できないロック程度で十分です。 ZIPなどに固めるときに読み取り専用にしておけば、普通は解凍しても属性が保持されます。 まぁ、解凍ソフトによっては、ならない場合もありますが・・・。 それぐらいしか思い付きません。

sadoru
質問者

お礼

お返事が遅くなりすいません。 アドバイス助かります。 また、何かありましたらアドバイスお願い致します。

関連するQ&A

  • PHPでバックアップ

    PHP初学者です、よろしくお願い致します。 PHPでバックアップを取りたく、次の様にしてみたのですが、実行するとファイルは正しいサイズでダウンロードされるのですが解凍すると中身は空になっています。できたファイルをFTPで別途ダウンロードして解凍してみると正常です。 $file = $storedir.$generatefile; $tstr = 'tar -C '.$upperdir. ' -czf '.$storedir.$generatefile.' '.$targetfolder; $result = system($tstr, $retval); if (file_exists($file)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); } ファイルが出来上がっていないのにダウンロードが始まってしまうからでしょうか?もしそうならファイルが出来上がってからダウンロードが始まるようにするにはどうしたら良いでしょうか? 根本的にやり方が良くないようでしたらそれもご指摘いただければありがたいです。よろしくお願いいたします。

    • 締切済み
    • PHP
  • php excelダウンロード

    phpによるExcel形式でのダウンロードプログラムを作っているのですが、どうしても分からない部分があり、質問させて頂きます。 下記のphpコードでExcel形式でのダウンロードを試みているのですが、Firefoxでは問題なく動作するのですが、IE6だと普通に htmlとしてブラウザに表示されてしまいます。 最初は他のヘッダーが出力されてしまっているのかと思い、 header("Content-Type: application/vnd.ms-excel")の前に headers_sent()関数を挿入してチェックしてみたのですが、 falseが返ってきており、問題はなさそうでした。 php.iniでもsession.auto_startは0で設定しています。 原因が分かる方、どなたかご教示お願いできませんでしょうか。 宜しくお願いします。 環境:WindowsXP IE6sp2 ---hogehoge.php----------- <?php header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=hoge.xls"); $aaa = '<html><head><title>hogehoge</title></head><body>'; $aaa .= '<table border="1"><tr><td>aaaaabb</td></tr>'; $aaa .= '<tr><td>aaaaacccc</td></tr></table></body></html>'; print $aaa; exit; ?>

    • ベストアンサー
    • PHP
  • phpでcsvダウンロードできない

    phpで配列をCSV にしてボタンを押すとブラウザからダウンロードさせたいのですが、 htmlタグで表示した後に、ボタンを押すとブラウザからダウンロードさせるには、以下の ヘッダーをhtmlタグより下につけると、機能しなくなってダウンロードできなくなって しまっています。 どうしたらいいのでしょうか。 header('Content-Type:application/octet-stream'); header('Content-Disposition:attachment;filename=data.csv');

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

    お世話になります。 タイトルのとおりPHPでファイルのダウンロードを行いたいのですが、 ファイルを保存するというダイアログが出てくれません。 tesuto.php <?php $file="/work/tesuto.csv"; header ("Content-Disposition: attachment; filename=$file"); header ("Content-type: application/x-csv"); readfile ($file); ?> tesuto.phpを実行するとダウンロードされずに、ファイルの中身が表示されてしまいます。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP→DB→CSV 「ダウンロードできません」

    DBの内容をPHPを使ってCSVに変換してダウンロードするプログラムを使っています。 プログラム(csv.php)の先頭に header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=output.txt"); header ("Content-Description: File Transfer"); を書いているのですが、いざダウンロードをする画面になるとoutput.csvでなくcsv.phpをダウンロードすることになってしまいダウンロードができません。 表示だけならばっちりでているのですが、、、ファイルタイプがHTMLとなっているのも意味不明です。 だれか助けてください(><

    • ベストアンサー
    • PHP
  • PHPでWAVファイルをDL→保存する

    PHPでWAVファイルをダウンロード→保存できるようにしたいと思い 以下のプログラムを組みました。 $fpath = 'wav/music.wav'; // ファイルパス $fname = 'music.wav'; // ファイル名 header('Content-Type: audio/x-wav'); header('Content-Length: '.filesize($fpath)); header('Content-Disposition: attachment; filename="'.$fname.'"'); echo file_get_contents($fpath); ファイルのダウンロード、保存と出来たのですが 実際にファイルを開こうとすると音楽プレーヤーで再生出来ませんでした。 ダウンロードしたファイルと元のファイルのプロパティを見比べた所、 「概要」に表示されていた項目(ビットレート等)が消えていたので 正常に保存が出来ていないようです。ファイルサイズは同じでした。 どうすればWAVファイルが普通に保存できるでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP
  • ダウンロードさせると*.phpにリネームされてしまう。

    phpでファイルのダウンローダを作成したのですが、IEで動かすと*.phpと動作しているphpのスクリプトネームにリネームされてしまいます。 FireFoxではリネームされる事無くダウンロードされるのですが、IEでの解決方法をご存知の方、どうぞご教授くださいませ。 コードは $filesize=filesize($filedldir); header ("Accept-Ranges: none"); header ("Content-Length: $filesize"); header ("Content-Type: application/octet-stream"); header ("Content-Disposition: attachment; filename=$fnames"); readfile ($filedldir); exit; といった感じです。 何がおかしいのでしょうか?

    • ベストアンサー
    • PHP
  • csvをダウンロードする際、いきなり「名前を付けて保存」窓を表示したい。

    現在以下のような記述でダウンロードさせています。 header("Content-Disposition: attachment; filename=$Html_flnm"); header("Content-Type: application/csv ;name=.$Html_flnm"); header("Content-Length: ".filesize("$csvpath")); これだと、 「ファイルのダウンロード」窓が開き、「開く」「保存」「キャンセル」の3つの選択が可能です。 ここで「保存」を選ぶと「名前を付けて保存」窓が開きますが、 いきなりこれを開くようにしたいのです。可能でしょうか。 もしくは、「ファイルのダウンロード」窓の選択肢を 「保存」「キャンセル」の2つにする、という方法でも 結構です。

    • 締切済み
    • PHP
  • ファイルをダウンロードしたい

    PHPでDBから取ってきたデータをエクセルに出力し、ダウンロードさせる プログラムを書いていますが、うまくいきません。 処理の流れは以下のようになっています。 ----------------------------------------------------- ◇top.php(ダウンロードボタン押下) ↓ ◇action.php実行 さらにこの中で、 ・logic.php実行→DBからデータ取得 ・excel.php実行(ダウンロードボタン押下時のみ) logicからデータをもらってエクセルファイル生成。 header("Content-type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=\"$filename\""); ・view.php実行→Smartyでtop.phpの画面表示(top.tpl) (logicからviewに値を渡してデータを画面表示) ----------------------------------------------------- この処理だと、ダウンロードされるファイルが生成したものでなく、 top.phpをダウンロードしてしまうんです。(中身はHTMLですけど。) 同じような質問がありましたが、結局どうしたらいいのか・・ http://oshiete1.goo.ne.jp/kotaeru.php3?q=1432459 top.phpにはデータを表示していて、ダウンロードボタンも付いている って感じです。ボタンを押した時の挙動をどうしたらいいのか、いまいち 分かりません。 よろしくお願いします。

    • 締切済み
    • PHP
  • PHPで複数ファイルのダウンロード

    はじめまして、PHPについて質問させていただきます。 PHPでファイルを複数ダウンロードできるようしたいと思っています。 色々調べ、header関数を使用し、以下のように記述すると ファイルのダウンロードは成功しました。 /*****************************************/ // ダウンロードさせる元ファイル(絶対パス) $filepath = 'test_01.pdf'; // 保存時のファイル名(デフォルト) $filename = 'download001.pdf'; // HTTPヘッダ送信 header("Content-length: " . filesize($filepath)); header("Content-type: application/pdf"); header("Content-Disposition: attachment; filename=\"{$filename}\""); // ファイルを読み込んで出力 readfile($filepath); /*****************************************/ 一つのファイルのダウンロードに成功したので、 次に複数のファイルを順番にダウンロードをさせる為にループ処理をしました。 /*****************************************/ //配列 複数ファイル $downfile = array("test_01","test_02","test_03"); //データ数 $max = count($downfile); // ダウンロードさせるディレクトリ(絶対パス) $filepath = "/home/sites/www.eshop-himawari.com/web/test_nihon/form_down/file/"; // 保存時のファイル名(デフォルト) $filename = "download"; $filetype = ".pdf"; $kazu = 1; //ループ処理 for( $i = 0; $i < count( $max ); $i++ ){ $downpath = $filepath.$downfile[$i].$filetype; $filename = $filename.$kazu.$filetype; $kazu = $kazu++; // HTTPヘッダ送信 header("Content-length: " . filesize($downpath)); header("Content-type: application/pdf"); header("Content-Disposition: attachment; filename=\"{$filename}\""); // ファイルを読み込んで出力 readfile($downpath); // $fp = fopen( "$downpath", "rb" ); // @fpassthru( $fp ); } /*****************************************/ しかし実行すると最初のファイルはダウンロードしますが 2つ目からのファイルはダウンロードされませんでした。 きちんとループ処理をされて、2つ目以降のファイルをダウンロード するには、どうすればいいのでしょうか?

    • 締切済み
    • PHP

専門家に質問してみよう