我得到未定义的索引:照片错误可以告诉我有关错误的任何人

时间:2014-06-03 22:50:57

标签: php

这是我的php上传脚本,正如我解释的那样,它显示了未定义的索引: photoForm()中的照片错误可以告诉我有关错误的信息。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <title>Uploading a Photo</title>
    <link rel="stylesheet" type="text/css" href="common.css" />
    </head>
    <body>
    <?php
        if ( isset( $_POST["sendPhoto"] ) ) {
            processForm();
        } else {
            displayForm();
        }
        function processForm() {
            if ( isset( $_FILES["photo"] ) and $_FILES["photo"]["error"] == UPLOAD_ERR_OK ) {
            if ( $_FILES["photo"]["type"] != "image/jpeg" ) {
            echo "<p>JPEG photos only, thanks!</p>";
            } elseif ( !move_uploaded_file( $_FILES["photo"]["temp_name"],'c:\Downloads' ) ){
            echo "<p>Sorry, there was a problem uploading that photo</p>" .
            $_FILES["photo"]["error"] ;
            } else {
            displayThanks();
        }
        } else {
        switch( $_FILES["photo"]["error"] ) {
        case UPLOAD_ERR_INI_SIZE:
            $message = "The photo is larger than the server allows.";
            break;
        case UPLOAD_ERR_FORM_SIZE:
            $message = "The photo is larger than the script allows.";
            break;
        case UPLOAD_ERR_NO_FILE:
            $message = "No file was uploaded. Make sure you choose a file to 
            upload.";
            break;
        default:
            $message = "Please contact your server administrator for help.";
            }
            echo "<p>Sorry, there was a problem uploading that photo. $message</p>";

        }
    }
        function displayForm() {
        ?>
    <h1>Uploading a Photo</h1>
    <p>Please enter your name and choose a photo to upload, then click 
    Send Photo.</p>
    <form action="photo_upload.php" method="post" enctype="multipart/
    form-data">
        <div style="width: 30em;">
        <input type="hidden" name="MAX_FILE_SIZE" value="50000" />
        <label for="visitorName">Your name</label>
        <input type="text" name="visitorName" id="visitorName" value="" />
        <label for="photo">Your photo</label>
        <input type="file" name="photo" id="photo" value="" />
        <div style="clear: both;">
        <input type="submit" name="sendPhoto" value="Send Photo" />
        </div>
    </div>
    </form>
    <?php
}
    function displayThanks() {
    ?>
    <h1>Thank You</h1>
    <p>Thanks for uploading your photo<?php if ( $_POST["visitorName"] ) 
    echo ", " . $_POST["visitorName"] ?>!</p>
    <p>Here’s your photo:</p>
    <p><img src="photos/<?php echo $_FILES["photo"]["name"] ?>" alt="Photo"/></p>
        <?php
    }
    ?>
    </body>
    </html>

这是我的php上传脚本,正如我解释的那样,它显示了Undefined index:process in processForm()中的错误可以告诉我有关错误的信息。

1 个答案:

答案 0 :(得分:0)

该功能的第一行应为:

if ( isset( $_FILES["photo"] )
{
    if ( $_FILES["photo"]["error"] == UPLOAD_ERR_OK )
    {
      // the rest of the code
    }
}