将图片文件进行base64编码,然后作为post参数进行上传。php在接收到数据后进行解码,然后将数据写到文件。
在base64编码的数据中,由a-zA-Z0-9+/等64个字符组成。在post传递参数时,会自动url编码。在服务器接收时,同样会对数据进行解码。
编码时,将空格转换为‘+’号;解码时,将'+'号转换为空格。
所以通过post获得的base64编码数据中包含的+号,都变成了空格。需要在base64解码之前对数据进行处理,将空格转换为'+'。不然保存的文件就会有错误。
$content = file_get_contents($file); #从文件中读取内容。 $encontent = base64_encode($content); #进行base64编码。 $decontent = base64_encode($encontent); #进行base64解码 file_put_contents($filename,$decontent); #内容写入文件。
在base64编码的数据中,由a-zA-Z0-9+/等64个字符组成。在post传递参数时,会自动url编码。在服务器接收时,同样会对数据进行解码。
编码时,将空格转换为‘+’号;解码时,将'+'号转换为空格。
所以通过post获得的base64编码数据中包含的+号,都变成了空格。需要在base64解码之前对数据进行处理,将空格转换为'+'。不然保存的文件就会有错误。