使用$.post提交表格时,图片是无法上传的(除非用编辑器插件什么的,那些都比较大)。 这是一个新思路,图片转base64编码,提交上去,当然,图片不能太大,超过上传限制是不行的。
function base64_upload($base64) { $base64_image = str_replace(' ', '+', $base64); //post的数据里面,加号会被替换为空格,需要重新替换回来,如果不是post的数据,则注释掉这一行 if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image, $result)){ //匹配成功 if($result[2] == 'jpeg'){ $image_name = uniqid().'.jpg'; //纯粹是看jpeg不爽才替换的 }else{ $image_name = uniqid().'.'.$result[2]; } $image_file = "./upload/test/{$image_name}"; //服务器文件存储路径 if (file_put_contents($image_file, base64_decode(str_replace($result[1], '', $base64_image)))){ return $image_name; }else{ return false; } }else{ return false; }}