[英]How to upload base64 encoded image to server
我有jquery插件,該插件以我要存儲在服務器中的base 64編碼格式發送圖像
這是我嘗試過的
$post = json_decode($_POST['file'], true); $data = $post['output']['image'];
$data = str_replace('data:image/png;base64,', '', $data);
$data = str_replace(' ', '+', $data);
$data = base64_decode($data);
require('/home/example/public_html/files/image/class.upload.php');
$code = md5(time());
$handle = new upload($data);
if ($handle->uploaded) {
$handle->file_new_name_body = "$code";
$handle->mime_check = true;
$handle->allowed = array('image/*');
$handle->image_convert = 'jpg';
$handle->jpeg_quality = 70;
$handle->image_resize = true;
$handle->image_x = 600;
$handle->image_ratio_y = 600;
$handle->process('/home/example/public_html/files/blog/img/');
if ($handle->processed) {
$file_name = $handle->file_dst_name;
} else {
echo "error";
}
}
我上面的代碼圖像上載類適用於每張圖像,但是我無法上載base 64編碼圖像,我該如何實現
您使用的上載類不支持直接將base64輸入。 最好使用此方法將臨時版本保存到目錄中,然后使用該類執行所需的操作,然后將其刪除:
$data = str_replace('data:image/png;base64,', '', $data);
$data = str_replace(' ', '+', $data);
$data = base64_decode($data);
require('/home/example/public_html/files/image/class.upload.php');
$code = md5(time());
$write_dir = "/home/example/public_html/files/blog/img/";
$temp_code = "temp_".$code;
$ifp = fopen($write_dir.$temp_code, "wb");
fwrite($ifp, $data);
fclose($ifp);
$handle = new upload($write_dir.$temp_code);
if ($handle->uploaded) {
$handle->file_new_name_body = "$code";
$handle->mime_check = true;
$handle->allowed = array('image/*');
$handle->image_convert = 'jpg';
$handle->jpeg_quality = 70;
$handle->image_resize = true;
$handle->image_x = 600;
$handle->image_ratio_y = 600;
$handle->process($write_dir);
if ($handle->processed) {
$file_name = $handle->file_dst_name;
unlink($write_dir.$temp_code);
} else {
echo "error";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.