0

画像を正常にアップロードするために使用されている次のコードがあります。

$fileName = $_FILES['file']['name'];
$fileSize =  $_FILES['file']['size'];
$fileType = $_FILES['file']['type'];
$fileTmp = $_FILES['file']['tmp_name'];
list($origWidth, $origHeight) = getimagesize($fileTmp);

問題は、各行に「未定義のインデックス」が表示されることです。

このコードの直前に print_r($_FILES) があり、各配列変数が存在し、$fileName などの変数をエコーアウトして、それぞれに値があることがわかります。

また、このコード ブロックの前にこれを配置しましたが、違いはありません。

$fileName = $fileSize = $fileType = $fileTmp = ''; 

これらの変数が定義されていることを確認する方法はありますか?

ありがとうございました

アップデート.............................

これは HTML コードです。

      <form action="http://www.domainname.com/scripts/php/processing.php?page=join&section=precrop&type=profile&token=photoToken" method="post" id="joinPhotoUploadFormProfile" enctype="multipart/form-data">
        <input type="file" name="file" class="fileProfile"><br>
      </form>

アップデート...............................

var_dump($_FILES); 以下の出力:

ここに画像の説明を入力

4

1 に答える 1

1

取得Undefined indexしていて、スクリプトがアップロードを正常に完了するため、次の行を追加して、リクエスト メソッドが実際POSTにあり、$_FILES配列が設定されていることを確認します。

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $fileName = (isset($_FILES['file']['name']) ? $_FILES['file']['name'] : null);
    $fileSize = (isset($_FILES['file']['size']) ? $_FILES['file']['size'] : null);
    $fileType = (isset($_FILES['file']['type']) ? $_FILES['file']['type'] : null);
    $fileTmp = (isset($_FILES['file']['tmp_name']) ? $_FILES['file']['tmp_name'] : null);

    //the rest of your upload code
}

また、URL を介して多くの変数を渡しているように見えますが processing.php?page=join&section=precrop&type=profile&token=photoToken、スクリプトに他の条件があることを示唆しているため、適切な場所でコードを編集していることを確認してください。

于 2013-06-30T04:52:37.080 に答える