【问题标题】:Image not moved from tmp dir to another folder in linux server图像未从 tmp 目录移动到 linux 服务器中的另一个文件夹
【发布时间】:2023-04-06 05:53:01
【问题描述】:

我设计了一个将图像作为输入的网站,并使用 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服务器。

【问题讨论】:

  • 你检查权限了吗?
  • 这需要调试而不是代码审查。什么地方出了问题?有没有var_dump()ed$_FILES看文件到底有没有传输?
  • 如何分配权限?
  • 我测试了在上传文件夹中复制图像的代码并显示了图像。如何检查图像是否被传输?
  • 当我和我的代码一起运行时 echo "Upload: ".$_FILES["file"]["name"]."
    "; // echo "存储在:".$_FILES["file"]["tmp_name"]."
    ";输出是上传:3ae3e1363673005.jpg 存储在:/tmp/phpLsN4U8。但是当我检查 tmp 文件夹时它不在服务器中

标签: php linux apache apache2


【解决方案1】:

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

sudo chmod 777 absolute_path_of_you_dir

在 Ubuntu 上。

【讨论】:

  • 我应该将权限分配给上传目录还是tmp目录?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
相关资源
最近更新 更多