我有以下PHP代码,当有人上传文件时运行:
if ($_FILES['files']['error'] === UPLOAD_ERR_OK) {
die("Upload failed with error " . $_FILES['file']['error']);
}
$namme = $_FILES['files']['name'][0];
$namme = substr($namme, strpos($namme,"."), strlen($namme));
$ok = false;
switch ($namme) {
case '.docx':
case '.txt':
case '.pdf':
break;
default:
die("Unknown/not permitted file type");
}
$filename = $_FILES['files']['tmp_name'][0];
$file = _file_get_contents('./'.$_FILES['files']['name'][0], true);
我想要打印所有内容,但我不想先保存文件然后打开它。
我的问题是:是否可以打开文本文件打印内容而不先保存文件?
答案 0 :(得分:2)
当用户上传文件时,它会保存在临时位置。这就是HTTP服务器的工作方式,在调用PHP脚本之前。如果服务器将所有上传的文件保存在内存中会很糟糕;如果用户上传了十几个全部为10 MB的文件怎么办?
避免这种情况的唯一方法是不使用文件上传(例如,让用户将文件内容粘贴到提交的文本区域中),或编写自己的HTTP服务器而不使用PHP(不是实际解决方案,最有可能)。