<?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.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のセーフモードについて考えてみたいと思います。
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)に設定してやってみましたが、
上記と同様のエラーが表示されました。
お探しの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ランキング
-
アップロード画像数でCSSを分け...
-
【PHP】サーバー上で TIFFをJPE...
-
★PHP★画像アップロードの際に余...
-
PythonのTkinter詳しい方へ。画...
-
C#とJavaで、MP3タグの画像を表...
-
C# Excelファイルへの画像挿入。
-
透過PNGが透過されない!!
-
Illustratorで文字と画像を流し...
-
GDの画像変換でサーバーに負荷
-
PHP + MySQL で画像データ表示
-
エクセルでカレンダーマクロの...
-
PHPで半透明画像を作りたい
-
VBSの「MsgBox」について
-
imageフォルダに、画像をリサイ...
-
PostgreSQLのラージオブジェク...
-
<img src="http://x.y.com/cgi-...
-
VBAでJPGサイズ変更
-
PHPによる画像の生成による色の...
-
こちらはただの直列処理ですか?
-
フォントの色を変えるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
拡張子php画像をjpg画像等に変...
-
透過PNGが透過されない!!
-
アップロード画像数でCSSを分け...
-
imageフォルダに、画像をリサイ...
-
VBAでJPGサイズ変更
-
Illustratorで文字と画像を流し...
-
VBAのコードを教えてください
-
C# Excelファイルへの画像挿入。
-
php,mysqlにて画像パス保存/表...
-
GDI+を使ったビット数とDPIの扱い
-
SQLiteに画像を格納したい
-
ListViewコントロールでサムネ...
-
★PHP?★画像を縦横比を変えずに...
-
ビットマップ画像を読み込むプ...
-
phpで画像がどうしても文字化け...
-
PHPで吐き出した画像にリンクを...
-
phpMyAdminに画像を保存できない
-
OpenGLで描いて画像ファイル出力
-
手作業で埋め込んだ、UserForm1...
おすすめ情報