0

test.php という名前の単一のファイルがあります。このファイルには、画像 (.PNG および .JPG) をアップロードするための以下のコードを記述しました。また、アップロードする前に画像のプレビューを作成するコードを追加します...何も問題はないようですが、送信ボタンを押しても何も起こりません...なぜですか? 私の問題はどこですか?

更新: 変更を行ったところ、次の警告が表示されました: 警告: 無効な引数が foreach() に指定されました...

test.php:

<script type="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script> 
<body>

<?php
if ( isset( $_POST[ 'submit' ] ) ) {

    define ("UPLOAD_DIR" , "uploaded/pic/");

    foreach ($_FILES["images"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {

            $name = $_FILES["images"]["name"][$key];

            $info = getimagesize($_FILES["images"]["tmp_name"][$key]);
            $image_type = $info[2];

            $type = $_FILES['images']['type'][$key];

            // if the image is .JPG or .PNG
            if ( ($image_type == 3) ||  ($image_type == 2) ){

                // ensure a safe filename
                $name = preg_replace("/[^A-Z0-9._-]/i", "_", $name);

                // don't overwrite an existing file
                $i = 0;
                $parts = pathinfo($name);
                while (file_exists(UPLOAD_DIR . $name)) {
                    $i++;
                    $name = $parts["filename"] . "-" . $i . "." . $parts["extension"];
                }

                // preserve file from temporary directory
                $success = move_uploaded_file($_FILES["images"]["tmp_name"][$key], UPLOAD_DIR . $name);

                if (!$success) { 
                    echo "<p>Unable to save file.</p>";
                    exit;
                }

                // set proper permissions on the new file
                chmod(UPLOAD_DIR . $name, 0644);
                echo "<h2>Successfully Uploaded Images</h2>";
            }
            else{
                echo "<h2>format not supported... </h2>";   
            }
        }
    }
}
?>

<div id="upload_form">

    <form id="frm1" name="frm1" method="post" action="test.php" enctype="multipart/form-data">

      <p>
        <label for="images">insert your image</label>
        <input type="file" name="images" id="images" tabindex="80"/>
      </p>

      <img id="pic" name="pic" src="#" />

      <button type="submit" id="submit" name="submit">Upload Files!</button>

    </form>

    <script type="text/javascript" language="javascript">
      // Preview the picture before Uploading on the server!
         function readURL(input) {
            if (input.files && input.files[0]) {
            var reader = new FileReader();

            reader.onload = function (e) {
                $('#pic').attr('src', e.target.result);
            }

            reader.readAsDataURL(input.files[0]);
            }
        }

        $("#images").change(function(){
            readURL(this);
        });
     </script>
  </div>
4

1 に答える 1

1

name="imagesを使用して配列として配置する必要があります[]

このような:

<input type="file" name="images[]" id="images" tabindex="80"/> 
于 2013-10-05T16:14:20.880 に答える