我正在尝试为twitter创建图片上传表单以更改头像。 Twitter表示在上传之前图片必须是64位编码。所以这是一个样本
https://dev.twitter.com/docs/api/1/post/account/update_profile_image
到目前为止,我怎么能这样做?我一直在犯错误
PHP代码:
<?php // process form data
if ($_POST['image']){
// post profile update
$post_data = array(
"image" => $_POST['image']
);
$post_data = base64_encode($post_data);
echo $post_data;
}
else{
echo
" <form action='post.php' method='POST' enctype='multipart/form-data'>
<br><input type='hidden' name='image' value='update_profile_image'>
<input type='file' name='image' size='30'/><br>
<input type='submit' value='Upload' class='button'/>
</form>";}
?>
请帮忙
答案 0 :(得分:1)
从外观上看,您根本没有从POST中检索图像。图像本身将在$_FILES
// See what's in $_FILES
var_dump($_FILES);
// You need the temporary name of your image from $_FILES
$filedata = file_get_contents($_FILES['image']['tmp_name']);
$post_data = base64_encode($filedata);
// Now you should have a base64 ascii string
echo $post_data;
答案 1 :(得分:1)
这应该这样做。 将上传的文件移动到目录,因为您无法通过加密[tmp_name]
获得所需的结果if ($_FILES['image']){
move_uploaded_file($_FILES["image"]["tmp_name"], "path" .basename($_FILES["image"]["name"]));
$meh = file_get_contents("path/" .basename($_FILES["image"]["name"]));
$results = base64_encode($meh);
}