3

私はFacebookを作成しています。通常のPHPプログラムでアップロード画像コードを数回使用しました。現在Facebookアプリで使用しています。これが私のコードです。

    $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>

問題は、常に「不明な拡張子」というエラーが発生することです。$_REQUEST代わりに使用する$_FILESと、アップロードされたファイル名の最初の文字しか表示されません。 PS:問題はGetExtention関数にありません。問題は私が欠けている$_FILES['image']['name'])もの を教えてくれる人にあります。私はこの時点で過去2時間立ち往生しています。ありがとうございました

4

1 に答える 1

2

ファイルのアップロードを使用している間enctype="multipart/form-data"は、フォームタグで使用する必要があることを確認してください。それがあなたを助けることを願っています。

于 2012-12-19T16:48:50.140 に答える