在Facebook App中上传图片

时间:2012-12-19 15:00:58

标签: php facebook file-upload upload

我正在创建一个facebook,我已经在普通的PHP程序中使用了上传图像代码几次。我现在在facebook app中使用它。这是我的代码

    $image=clean($_FILES['image']['name']);
echo '<h1>Got it</h1>'.$image;
    //if it is not empty
    if (isset($_FILES))
    {
    //get the original name of the file from the clients machine
        $filename = stripslashes($_FILES['image']['name']);
            echo '<h1>Got it 2</h1>'.$filename;

    //get the extension of the file in a lower case format
        $extension = getExtension($filename);

        $extension = strtolower($extension);
    //if it is not a known extension, we will suppose it is an error and 
        // will not  upload the file,  
    //otherwise we will do more tests

 if (($extension != "jpg") && ($extension != "jpeg") && ($extension !=
 "png") && ($extension != "gif")) 
        {
        //print error message
            echo '<h1>Unknown extension!</h1>'.$filename.'hi';
            $errors=1;
        }
        else
        {
//get the size of the image in bytes
 //$_FILES['image']['tmp_name'] is the temporary filename of the file
 //in which the uploaded file was stored on the server
 $size=filesize($_REQUEST['image']['tmp_name']);

//compare the size with the maxim size we defined and print error if bigger
if ($size > MAX_SIZE*1024)
{
    echo '<h1>You have exceeded the size limit!</h1>';
    $errors=1;
}

//we will give an unique name, for example the time in unix time format
$image_name=time().'.'.$extension;
//the new name will be containing the full path where will be stored (images 
//folder)
$newname="images/".$image_name;
//we verify if the image has been uploaded, and print error instead
$copied = copy($_REQUEST['image']['tmp_name'], $newname);
if (!$copied) 
{
    echo '<h1>Copy unsuccessfull!</h1>';
    $errors=1;
    $newname="copy";
}}}

这是我的HTML代码。这显然是在

之内
<td><label for="image">Image</td>
                        <td><input type="file" id="image" name="image" ></td>

问题是我总是收到错误“Unknown Extension”,如果我使用$_REQUEST而不是$_FILES,那么我只能看到上传文件名的第一个字母。 PS:问题不在于GetExtention功能。问题在于$_FILES['image']['name'])内容 谁能告诉我我失踪了什么。过去2个小时我都陷入困境。 谢谢

1 个答案:

答案 0 :(得分:2)

请确保在使用文件上传时,您必须在表单标记中使用enctype="multipart/form-data"。 希望对你有所帮助。