2
<?php

类 File_Streamer {

私人 $fileName;
私人 $contentLength;
私人$路径;

    public function __construct()
    {
        if (array_key_exists('HTTP_X_FILE_NAME', $_SERVER) && array_key_exists('CONTENT_LENGTH', $_SERVER)) {
            $this->fileName = $_SERVER['HTTP_X_FILE_NAME'];
            $this->contentLength = $_SERVER['CONTENT_LENGTH'];
        } else throw new Exception("Error retrieving headers");
    }

    public function setDestination($p)
    {
        $this->path = $p;

    }

    public function receive()
    {
        if (!$this->contentLength > 0) {
            throw new Exception('No file uploaded!');
        }

        file_put_contents(
            $this->path . $this->fileName, 
            file_get_contents("php://input")
        )
        ;
        return true;
    }
}
?>

我有这个代码来上传我的文件,但我希望他们用 CHMOD 755 上传,需要一些帮助,拜托。

4

1 回答 1

1

两种选择:

  1. 首先完全上传文件,然后chmod它。
  2. 创建空文件,对其进行chmod,然后将数据放入其中。

在 PHP 中对文件执行 chmod 非常简单:

chmod("/directory/file", 0755);  

请记住,您需要使用八进制而不是十进制来获得正确的模式值;所以在你的“755”前面加上一个“0”,如上例所示!

对于您的代码,我会这样做:

public function receive()
{
    ...

    chmod($this->path . $this->fileName, 0755); 
    return true;
}

有关 php 中 CHMOD 命令的更多详细信息,请访问http://php.net/manual/de/function.chmod.php

于 2013-06-26T16:48:58.150 回答