フォームからbase64の文字列として画像を渡しています。それから私はそれを解読し、名前を変更して、私のサーバーフォルダにアップロードしたいと思います。私はこれを動作させることはできませんので、私はここで何か間違っています。どんな助けもありがとう。Base64の画像をデコードしてPHPでサーバにアップロード
マイコード:ファイルを使用して
$image = $_POST['image-data'];//base64 string of a .jpg image passed from form:
$image = str_replace('data:image/png;base64,', '', $image);//Getting rid of the start of the string:
$image = str_replace(' ', '+', $image);
$image = base64_decode($image);
$ext = strtolower(substr(strrchr($image, '.'), 1)); //Get extension of image
$lenght = 10;
$image_name = substr(str_shuffle("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ"), 0, $lenght);
$image_name = $image_name . '.' . $ext; //New image name
$uploaddir = '/var/www/vhosts/mydomain.com/httpdocs/img/'; //Upload image to server
$uploadfile = $uploaddir . $image_name;
move_uploaded_file('$image', $uploadfile);
はなぜあなたがアップロードする前にファイルを変換しているフォルダにファイルを移動することができ、コンテンツを置きますか? PHPのファイルアップロードを扱う方法の詳細http://php.net/manual/en/features.file-upload.php – jeff
move_upload_fileは使用できません(ファイルをアップロードしていません)。画像データは文字列として表示されます。文字列リソースからイメージを作成する必要があると思います。 GD oder Imagickはあなたの友人です;)画像をファイルとしてアップロードディレクトリに保存します。 – BenRoob