1

file_put_contents を使用してディレクトリに画像をアップロードしようとしましたが、ファイルはアップロードされましたが、ファイルが破損しており、開くことができません。ここに私のコードがあります:

define('UploadDir','../Dir/images');
$path = "image.png";
$data="..."; //image base64 string
$file = UploadDir ."/". $path;
$success = file_put_contents($file, $data);
echo $success ? $file : 'Unable to save the file.';
4

2 に答える 2

4

$data="..."; //画像の base64 文字列

コメントの内容が含まれていると仮定すると$data、画像にbase64文字列を入れると、明らかに有効な画像ではなくなります.base64でエンコードされた文字列を含むファイルになります.

有効にする (または有効にする可能性がある) には、ファイルに書き込む前に文字列をデコードします。

$data="..."; //image base64 string
$file = UploadDir ."/". $path;
$success = file_put_contents($file, base64_decode($data));
于 2013-07-10T10:56:12.717 に答える
0

ディレクトリ../Dir/images chmoded to 777ですか?ディレクトリに十分な権限がない場合、php がディレクトリへのアクセスを許可しないことがあります。十分な権限があるかどうかを確認し、そうでない場合は、設定して777試してください。

于 2013-07-10T10:53:58.470 に答える