0

tmpbase64 文字列からフォルダー (既に存在する!) に画像を動的に作成および保存する小さな PHP スクリプトに取り組んでいます。これは私のsave.phpファイルです。

// get base-64 string from form
$filteredData = substr($_POST['img_val'], strpos($_POST['img_val'], ",")+1);

// decode string
$unencodedData = base64_decode($filteredData);

// create unique filename
$a = uniqid();

// name, location and file extension
$compfile = '/tmp/' . $a . '.png';

// save image
file_put_contents($compfile, $unencodedData);

// print image
echo '<img src="' . $compfile . '" />';

/tmp/奇妙なことに、$compfile変数が原因で、ページ上に画像を作成したりレンダリングしたりしません。削除すると、すべてが魅力的に機能し、同じフォルダーに画像が作成されます。

/tmp/残念ながら、フォルダに画像を作成したいのですが。以前$compfileはランダムに生成されたファイル名でしたが、代わりに/tmp/img.pngI save と呼ばれ、その名前で画像を作成img.pngし、tmp.

ここで何が欠けていますか?

(お時間をいただきありがとうございます。)

4

1 に答える 1

2

これが解決策だと思うので、回答として投稿します。

"tmp/" . $a . ".png"の代わりに欲しいと思います"/tmp/" . $a . ".png"。常に絶対パスを使用することをお勧めします__DIR__ . "/tmp/" . $a . ".png"。これにより、混乱が解消されます。

于 2014-04-07T21:51:52.227 に答える