1

我设计了一个将图像作为输入的网站,并通过使用 ajax 显示了图像。它在本地工作正常,但是当我将它上传到服务器时,图像没有显示。发生的过程是: 1)用户上传图像 2)图像默认存储在临时文件夹中 3)存储在临时文件夹中的图像移动到文件夹上传 4)图像显示在分区。我检查了路径,但对我来说似乎没问题。我将发布代码以供审查:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
               <link rel="stylesheet" href="MainStyleSheet.css" type="text/css">
               <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
               <script src="html5slider.js"></script>
                    <script type="text/javascript" src="scripts/jquery.form.js"></script>


                    <script type="text/javascript">
                    $(document).ready(function() 
                    {    


                    $('#file').live('change', function()    
                    { 
                    $("#preview").html('');
                    $("#preview").html('<img src="images/loader.gif" alt="Uploading...."/>');
                    $("#imageform").ajaxForm(
                    {
                    target: '#preview'
                    }).submit();




                    }); 
                    </script>
                    <script type="text/javascript">
                    function myfunction()
                    {

                    $("#display").html('');
                    $("#display").html('<img src="images/loader.gif" alt="Uploading...."/>');
                    $("#retrieveimageform").ajaxForm(
                    {
                    target: '#display'
                    }).submit();
                     $("#tagsform").ajaxForm(
                    {
                    target: '#tags'
                    }).submit();


                    };


                    </script>

        <title></title>
    </head>
    <body>
        <div id="maindiv">
                <div id="banner">
                <?php
                include 'Header.php';

                ?>
                 </div>
                <div id="wrapper">




                        <div id="imageupload">
                    <form action="uploadimage.php" method="post"
                         enctype="multipart/form-data" id="imageform">
                         <label for="file">Upload your image:</label>
                       <input type="file" name="file" id="file"><br>

                    </form>
                        </div>
                       <div id='preview'>  
                        </div>

                        <div id='tags'>
                    </div>
                        </form>
                       <div class="clear"></div>
                   ........................................

                   <div id="footer">
                 <?php
                include 'Footer.php';

                ?>
                </div>
         </div>
        <div id='screen'>
        </div>

    </body>
</html>

uploadimage.php 包含:

<?php
                         session_start();
                        $allowedExts=array("gif","jpeg","jpg","png");
                        $extension=  end(explode(".", $_FILES["file"]["name"]));
                        if((($_FILES["file"]["type"]=="image/gif")
                         ||($_FILES["file"]["type"]=="image/jpeg")  
                        ||($_FILES["file"]["type"]=="image/jpg")
                         ||($_FILES["file"]["type"]=="image/png"))
                                && ($_FILES["file"]["size"]<2000000)
                                && in_array($extension, $allowedExts))
                        {



                        if ($_FILES["file"]["error"]>0)
                        {
                            echo "Error:".$_FILES["file"]["error"]."<br>";
                        }
                        else{
                           // echo "Upload: ".$_FILES["file"]["name"]."<br>";
                           // echo "Store in: ".$_FILES["file"]["tmp_name"]."<br>";


                            move_uploaded_file($_FILES["file"]["tmp_name"],"upload/".$_FILES["file"]["name"]);
                            //echo "Stored in "."upload/".$_FILES["file"]["name"];
                            echo "<img src='upload/".$_FILES["file"]["name"]."' class='preview' height='300' width='250'>";

                            $_SESSION['img']="upload/".$_FILES["file"]["name"];





                        }

                         }
                         else
                         {
                             echo "Invalid file";
                         }
?>

在服务器中,当用户给出输入并且图像未显示时,图像不会存储在上传文件夹中。任何解决方案?:请帮助。服务器是linux服务器。

4

1 回答 1

1

问题在于文件权限。使用以下命令

sudo chmod 777 absolute_path_of_you_dir

在 Ubuntu 上。

于 2013-06-04T03:45:30.683 回答