PHP不在目录中存储图像

时间:2013-05-08 08:17:39

标签: php

Hello经验丰富的程序员。我目前在../var/www/photos文件夹中有目录images/和文件Dan.php

在浏览器中使用Dan.php时单击上传按钮时,会显示成功消息。破碎的图像方块显示出来了。右键单击时,我也无法在新选项卡中打开图像。该图像也不会出现在images/文件夹中。这是Dan.php。非常感谢您的见解和帮助。

我也尝试过chmod -R 777 ../var/www/photos/images

<!--I want you to use GD Library to Resize the image that is uploaded. 

如果你很快就能搞清楚,就开始研究用于裁剪的JS脚本

个人资料图片的图片(比例应为1:1) - &gt;

<html>
    <body>
        <form action="<?php echo ( $_SERVER['PHP_SELF'] );?>" method="post" enctype="multipart/form-data">
            <label for="file">Pictures</label>
            <input type="file" name="file[]" id="file" accept="image/*"  multiple="">
            <button type="submit" name="send_album">Submit</button>
        </form>
        <?php
        if(!is_dir('images')) {
            mkdir('images');
        }
        if(isset($_POST['send_album'])) { 
            //for($x = 0; $x < 9; $x++)
            $x = -1;

             foreach ($_FILES["file"]["name"] as $firstNameKey => $arFileDescriptions) {
                $x += 1;
                if ($_FILES["file"]["error"][$x] > 0) {
                    echo "Error: " . $_FILES["file"]["error"][$x] . "<br>";
                } elseif (file_exists("images/". $_FILES["file"]["name"][$x])) {
                    echo $_FILES["file"]["name"][$x] . " already exists. <br />";
                } else {
                    move_uploaded_file($_FILES["file"]["tmp_name"][$x], "images/" . $_FILES["file"]["name"][$x] . '/');

                    echo "Stored in: " . "images/" . $_FILES["file"]["name"][$x] ."<br />";
                    echo '<img style="height:150px;" src="' . 'images/'. $_FILES["file"]["name"][$x] . '" /><br />';
                    echo "Upload: " . $_FILES["file"]["name"][$x] . "<br />";
                    echo "Type: " . $_FILES["file"]["type"][$x] . "<br />";
                    echo "Size: " . ($_FILES["file"]["size"][$x] / 1024) . " kB<br />";
                }
            }
        }
        ?>
    </body>
</html>

2 个答案:

答案 0 :(得分:0)

我对您的代码进行了一些更改。试试这个。

if(isset($_POST['send_album'])) { 
        //for($x = 0; $x < 9; $x++)
        $x = -1;

         foreach ($_FILES["file"]["name"] as $firstNameKey => $arFileDescriptions) {
            $x++;
            if ($_FILES["file"]["error"][$x] > 0) {
                echo "Error: " . $_FILES["file"]["error"][$x] . "<br>";
            } elseif (file_exists("images/". $_FILES["file"]["name"][$x])) {
                echo $_FILES["file"]["name"][$x] . " already exists. <br />";
            } else {
                move_uploaded_file($_FILES["file"]["tmp_name"][$x], "images/" . $_FILES["file"]["name"][$x]);

                echo "Stored in: " . "images/" . $_FILES["file"]["name"][$x] ."<br />";
                echo '<img style="height:150px;" src="' . './images/'. $_FILES["file"]["name"][$x] . '" /><br />';
                echo "Upload: " . $_FILES["file"]["name"][$x] . "<br />";
                echo "Type: " . $_FILES["file"]["type"][$x] . "<br />";
                echo "Size: " . ($_FILES["file"]["size"][$x] / 1024) . " kB<br />";
            }
        }
    }

答案 1 :(得分:-1)

如何在服务器上设置 save_mode ?这是一个常见问题。尝试上传到目录只是'photos /',而不是'photos / images /',有效吗?

如果您想更改 save_mode

1)打开php.ini。 vi / php / php.ini的路径(替换为php.ini文件的路径)

2)找到以下行:safe_mode

3)打开或关闭安全模式。 safe_mode = Off您可以通过将其更改为On或Off来激活或关闭它。 safe_mode =开启

4)通过/etc/init.d/httpd restart重新启动Apache Web服务器或者终止所有退出的httpd连接并运行service httpd startssl