나는 사용자가 버튼을 '업로드'클릭시 사용자의 computer.code이
//index.php
<html>
<body>
<form enctype="multipart/form-data" action="http://localhost/uploader/upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Please choose a photo:
<input name="photo" type="file"><br/><br/>
Say something about this photo:
<input name="message" type="text" value=""><br/><br/>
<input type="submit" value="Upload"/><br/>
</form>
</body>
</html>
노호 주어진 이미지를 선택하고 HTML 파일을 가지고, 사용자는 파일을 uploader.php로 리디렉션됩니다. upload.php의 코드는 다음과 같습니다.
<?php
//upload.php
if(isset($_FILES['photo']) && isset($_POST['message'])){
$uploadfile = './uploads/'.basename($_FILES['photo']['name']);
$iStats=getimagesize($_FILES['photo']['tmp_name']);
if (isset($iStats['mime']) && $iStats[0]>0) {
move_uploaded_file($_FILES['photo']['tmp_name'], $uploadfile);
include_once 'fbmain.php';
try{
$uid = $facebook->getUser();
$me = $facebook->api('/me');
$token = $session['access_token'];//here I get the token from the $session array
$album_id = '2179901265385';//MY ALBUM ID
$facebook->setFileUploadSupport(true);
$args = array('message' => $_POST['message']);
$args['image'] = '@' . realpath($uploadfile);
$data = $facebook->api('/'. $album_id . '/photos?access_token='. $token, 'post', $args);
} catch(FacebookApiException $e){
echo "Error:" .$e;
}
unlink($uploadfile);
echo "Success!\n";
} else {
echo "Wrong file type!\n";
}
}
?>
동일한 폴더에 'uploads'라는 폴더가 만들어졌습니다. 사용자가 파일을 업로드 할 때 먼저 '업로드'폴더에 업로드 한 다음 페이스 북에 업로드했습니다.
이것은 로컬 호스트에서 잘 작동합니다. 하지만 그것은 서버에있을 때 작동하지 않습니다. 그것은 내가 '잘못된 파일 형식!' 메시지. 참고 : 내 서버에 '업로드'폴더에 대한 쓰기 권한이 있습니다.
'$ _FILES'의 값을 인쇄하려고했습니다.
print_r($_FILES);
그것은 나에게이 출력을 제공
Array ([photo] => Array ([name] => TEST IMAGE.jpg [type] => [tmp_name] => [error] => 2 [size] => 0))
사람이 나를 좀 도와 드릴까요? 서버에서 스크립트에 지시하는 "//localhost/uploader/upload.php HTTP"
에 ... 파일이 너무 큰 의미? – Mob
'tmp_name'은 비어 있습니다. PHP가/tmp 디렉토리 (또는 임시 파일을 쓰도록 설정 한 곳)에 파일을 쓸 수있는 권한이 있는지 확인해야합니다. – Andris
설정 파일에서'safe_mode' 상태를 확인해보십시오 . – sonnb