8

看,我为我网站的用户提供了将他们自己的 PHP/HTML/TXT 文件上传到我的服务器的可能性,对吗?...但是我想获取该文件内容而不将其保存在我的服务器中并将内容保存到字符串,或其他任何东西。

有可能这样做吗?...如果没有,在我的服务器中保存文件后我应该怎么做才能获取内容?...请帮帮我!

我不知道这是否有帮助,但这是我用来上传用户文件的代码。

$allowedExts = array("php", "html", "txt");
$tmp = explode(".", $_FILES["file"]["name"]);
$extension = end($tmp);

if 
((($_FILES["file"]["type"] == "application/octet-stream") 
|| ($_FILES["file"]["type"] == "text/php") 
|| ($_FILES["file"]["type"] == "text/html") 
|| ($_FILES["file"]["type"] == "text/plain")) 
&& ($_FILES["file"]["size"] < 50000) && in_array($extension, $allowedExts))
{
    if ($_FILES["file"]["error"] > 0)
    {
        echo "Error: " . $_FILES["file"]["error"] . "<br>";
    }
    else
    {
        echo "Upload: " . $_FILES["file"]["name"] . "<br>";
        echo "Type: " . $_FILES["file"]["type"] . "<br>";
        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo "Stored in: " . $_FILES["file"]["tmp_name"];
    }
}
else
{
    echo "Invalid file";
}
4

2 回答 2

13

用于file_get_contents()

echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];

// store file content as a string in $str
$str = file_get_contents($_FILES["file"]["tmp_name"]);

请注意,如果您还需要该文件以供以后使用,则必须另外将其复制到目标位置。像这样:

 move_uploaded_file($_FILES["file"]["tmp_name"], 'contents/' . $_FILE['name']);
于 2013-06-03T00:52:23.933 回答
0

是的 可以使用file_get_contents

$fileContent = file_get_contents($_FILES['upload_file']['tmp_name']);

下面的链接也会很有用

php: file_get_contents 正在剥离 php 代码

于 2013-06-03T01:02:06.050 回答