<?php
// 空の画像を作成し、テキストを追加します
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
// content type ヘッダを、ここでは image/jpeg と設定します
header('Content-type: image/jpeg');
// 画像を出力します
imagejpeg($im);
// メモリを開放します
imagedestroy($im);
?>
http://www.php.net/manual/ja/function.imagejpeg. …
を参照して(そのまま利用して)、画像を作成して表示させてみました。
すると、これはその通り、うまく画像が表示されました。
しかし、
<?php
// 空の画像を作成し、テキストを追加します
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
// 【追加分】: 画像を保存する
imagejpeg($im, 'new.jpg');
// content type ヘッダを、ここでは image/jpeg と設定します
header('Content-type: image/jpeg');
// 画像を出力します
imagejpeg($im);
// メモリを開放します
imagedestroy($im);
?>
のように
imagejpeg($im, 'new.jpg');
を挿入して、その画像を保存しようとしているのですが、うまくいきません。(何も起こりません。)
ちなみに、保存するためのディレクトリのパーミッションはその親ディレクトリを含め、(7,7,7)です。
「new.jpg(相対パス)」を「/www/.../new.jpg」のように絶対パスを使ってやっても結果は同じでうまくいきませんでした。
どのようにすれば、新しく作成した画像を保存できるのでしょうか?
ちなみに、OSはLinux(Fedora10)です。もちろん、GDは先のテストで証明される通り、動作していると思います。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
当方の環境では問題なく動作(保存と表示)しました。
何かエラーは出ていないのでしょうか。エラーが表示されない(or残らない)設定になっているのであればそれを変更してみてください。
ご回答ありがとうございます。
次のようなエラーが出ます.
Warning: imagejpeg() [function.imagejpeg]: Unable to open 'new.jpg' for writing: Permission denied in /var/.../index.php on line 15
書きました通り、当ディレクトリのパーミッションは(7,7,7)です。試験的に「/var/.../new.jpg」を作成して、パーミッションを(7,7,7)に設定してやってみましたが、
上記と同様のエラーが表示されました。
No.2
- 回答日時:
ANo.1です。
エラーの行を見る限り例示されているコードとは違うコードの実行結果のようなので不明な部分もありますが、書き込み権限がないというエラーであることは確かですね。
パーミッションの設定そのものや設定しているディレクトリ自体が正しいか確認するくらいでしょうか。
あとは、PHPの特定のバージョンにおいて、セーフモードの場合にimagejpeg()では一切ファイルを作成できないバグがあるようです。
この回答への補足
ちなみに、php.iniの一部をここに記します。
;
; Safe Mode
;
safe_mode = Off
; By default, Safe Mode does a UID compare check when
; opening files. If you want to relax this to a GID compare,
; then turn on safe_mode_gid.
safe_mode_gid = Off
; When safe_mode is on, UID/GID checks are bypassed when
; including files from this directory and its subdirectories.
; (directory must also be in include_path or full path must
; be used when including)
safe_mode_include_dir =
; When safe_mode is on, only executables located in the safe_mode_exec_dir
; will be allowed to be executed via the exec family of functions.
safe_mode_exec_dir =
; Setting certain environment variables may be a potential security breach.
; This directive contains a comma-delimited list of prefixes. In Safe Mode,
; the user may only alter environment variables whose names begin with the
; prefixes supplied here. By default, users will only be able to set
; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR).
;
; Note: If this directive is empty, PHP will let the user modify ANY
; environment variable!
safe_mode_allowed_env_vars = PHP_
; This directive contains a comma-delimited list of environment variables that
; the end user won't be able to change using putenv(). These variables will be
; protected even if safe_mode_allowed_env_vars is set to allow to change them.
safe_mode_protected_env_vars = LD_LIBRARY_PATH
たぶん、セーフモードにはなっていないと思います。
ご回答ありがとうございます。
お返事が遅れて失礼致します。
前にも書きました通り、パーミッションは(7,7,7)です。
今度はPHPのセーフモードについて考えてみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpで画像がどうしても文字化け...
-
透過PNGが透過されない!!
-
imageフォルダに、画像をリサイ...
-
ファイルアップロードのダイア...
-
Illustratorで文字と画像を流し...
-
BLOBデーターの画像の表示方法...
-
アップロード画像数でCSSを分け...
-
phpで画像を保存するときにリサ...
-
phpMyAdminに画像を保存できない
-
libpngでpng操作がうまくいかない
-
PHPで吐き出した画像にリンクを...
-
VBSの「MsgBox」について
-
最も速い画像合成処理を教えて...
-
phpについて
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
バッチを用いたフォルダの自動移動
-
phpとaspの違いについて
-
form actionで二つ送信先を指定...
-
PHP8を使うと、大量のWarningが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
拡張子php画像をjpg画像等に変...
-
透過PNGが透過されない!!
-
Illustratorで文字と画像を流し...
-
アップロード画像数でCSSを分け...
-
imageフォルダに、画像をリサイ...
-
PythonのTkinter詳しい方へ。画...
-
VBAでJPGサイズ変更
-
C# Excelファイルへの画像挿入。
-
ListViewコントロールでサムネ...
-
PHPで吐き出した画像にリンクを...
-
php,mysqlにて画像パス保存/表...
-
PHP+PostgreSQLを使ってPDFファ...
-
スマートフォンから画像のアッ...
-
画像にテキストを埋め込むジェ...
-
実行ファイル(exe)に画像ファ...
-
ビットマップ画像を読み込むプ...
-
改行コードのカウント
-
Ajaxで画像表示
-
画像アップロードのファイル名...
おすすめ情報