2016-09-07 18 views
-2

"drag & drop"画像アップローダがあります。私は画像を私のモジュールにajax経由で"Base64 image"として送信してから、"copy()"を使って画像を移動します。例えばCopy():ファイル名が最大許容パスを超えています... Base64画像

は:copy($image_in_b64, $destination);

が返す

コピー():データ:ファイル名が長く このプラットフォーム(4096)上の最大許容パス長よりも画像/ JPEG、BASE64、/9J/4QAYRXhpZgAASUkqAAgAA ...

すべては私のローカルサーバー上で完璧に動作しますが、私は展開され、サーバー上で何かをアップロードすることはできませんよ。これをどうすれば解決できますか?これはサーバの設定(何)にありますか?

+0

Base64でエンコードされたファイルのファイルパスではありません。 –

+0

なぜlocalhostで作業しているのですか?このファイルを移動する別の方法は何ですか? – Lucfia

+0

[docs](http://php.net/manual/en/function.copy.php)から、サーバー上で "fopen wrappers"を有効にする必要があるようです。 –

答えて

1

コメントいただきありがとうございます。画像をエンコードしてアップロードする必要がありました。

ソリューション:

$data = //image in base64 
list($img_type, $data) = explode(';', $data); 
list(, $data)  = explode(',', $data); 
$data = base64_decode($data); 

file_put_contents($path, $data);