保存前获取用户上传的文件内容

时间:2013-06-03 00:48:23

标签: php file upload save

请参阅,我向我网站的用户提供了将自己的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";
}

2 个答案:

答案 0 :(得分: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']);

答案 1 :(得分:0)

file_get_contents

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

以下链接也很有用

php: file_get_contents is stripping out php code