0

私は今から2日間ほど試してみましたが、イライラしています! うまくいけば、私は今日何か新しいことを学びます:)

そうです、最大 3 つの画像をアップロードできる php ページがあります。コードは表になっています (画像入力のみを表示するために縮小されています)。

<tr>
        <td align="right">1st Image</td>
        <td><label>
          <input type="file" name="fileField1" id="fileField1"/>
        </label></td>
      </tr>     

      <tr>
        <td align="right">2nd Image</td>
        <td><label>
          <input type="file" name="fileField2" id="fileField2" />
        </label></td>
      </tr> 
      <tr>
        <td align="right">3rd Image</td>
        <td><label>
          <input type="file" name="fileField3" id="fileField3" />
        </label></td>

次に、フィールドはphp経由でアップロードスロットに保存されます-

if (isset($_FILES['fileField1'])) {
    $errors = array();
    $allowed_ext = array('jpg', 'jpeg', 'png', 'gif');
    $file_name = $_FILES['fileField1']['name'];
    $global_file_name1 .= $file_name;
    $file_ext = strtolower(end(explode('.', $file_name)));
    $file_size = $_FILES['fileField1']['size'];
    $file_tmp = $_FILES['fileField1']['tmp_name'];

    if (in_array($file_ext, $allowed_ext) === false) {
        $errors[] = 'Extention not alowed';

    }

    if ($file_size > 2097152) {
        $errors[] = 'File must be under 2MB';
    }

    if (empty($errors)) {
        move_uploaded_file($file_tmp, 'upload/'.$file_name);
    } else {
        foreach ($errors as $error) {
            echo $error, '<br />';
            }
    }

コードは3つすべて同じです

私の問題は、他のフィールド(名前、詳細など)を変更できる編集ページにあります。送信を押すと、名前は何も変更されず、送信後に取得したものを送信しますが、画像には何もありません変更されて残されました。

私の質問は、何も選択されていない場合に if ステートメントが実行されないようにする方法を見つけることができますか?

前もって感謝します!

4

1 に答える 1

1

ファイルサイズを確認できます:

if ($_FILES['fileField1']['size']>0) {
    // new file has been submitted. Process it.
} else {
    // an empty field has been submitted. Do nothing.
}
于 2013-09-11T23:43:03.413 に答える