我试图做一个图像上传,其中JavaScript通过AJAX发布了一个图像的DataURI,PHP接收它将其解码为图像。通过datauri和php base64解码上传的javascript图像
问题是,除了最终产品不是图像文件外,一切工作正常。
请看下面的示例代码。
的JavaScript:
dataString='encodedimg='+e.target.result.match(/,(.*)$/)[1]+'&type='+type;
$.ajax({
url: 'uploadhandler_ajax.php',
type: 'POST',
data: dataString,
success: function(data){
//print success message
});
PHP:
$encodedimg = $_POST['encodedimg'];
file_put_contents('asdf.png', base64_decode($encodedimg));
没有与$_POST['encodedimg']
没有问题的,因为它使用在线的base64转换器产生正确的图像。所以我假设有一个误用file_put_contents()
或base64_decode()
。
感谢帮助!
感谢这个解决方案,但你的文件名不保证能够在'MD5独特(mt_rand(1,123123123) )' - 我推荐'uniqid()'。 – tubes