2

私は次のコードを持っています:

<?php
header('Content-Type: image/png');
$data = "iVBORw0KGgoAAAANSUhEUgAAAuAAAAI8CAYAAACwIh5dAAAgAElkZJgRCXxOAuIPzzTlg......";       
define('UPLOAD_DIR', '/home/Desktop/image.png');
$img = $data;
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
?>

ここ$dataには、base-64でエンコードされた画像の文字列が含まれています。画像をファイルに保存したい。私は前のコードもグーグルでたくさんのチュートリアルを通過しましたが、それは機能していません。

誰かが私が間違っているところを助けてくれますか?

前もって感謝します。

4

3 に答える 3

6
define('UPLOAD_DIR', '/home/xpointers/Desktop/');

覚えて!Apache Webサーバーは、独自のユーザー権限(www-dataなど)で実行されます。apacheユーザーまたはapacheが実行されているグループが、目的のディレクトリにアクセスできるように注意してください。テストするには、このディレクトリに777をchmodして、何が起こるかを確認します。

ユーザーディレクトリ内に書き込むことは、必ずしも良い考えではありません。可能であれば、必要なユーザーがアクセスできるニュートラルディレクトリを使用してください。

于 2012-06-04T13:04:33.897 に答える
5

私はこの行を信じています:

define('UPLOAD_DIR', '/home/Desktop/image.png'); 

する必要があります:

define('UPLOAD_DIR', '/home/Desktop/'); 
于 2012-06-04T12:59:35.113 に答える
-9

まず、次のような正しいパスを指定します。

define('UPLOAD_DIR', '/home/Desktop/');

指定したパスに読み取り/書き込み権限が設定されているかどうかを確認した後。

于 2012-06-05T05:12:09.223 に答える