2014-01-23 196 views
0

我有一个运行时有人上传一个文件下面的PHP代码: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); 

我想打印的所有内容了,但我不希望先保存文件然后打开它。

我的问题是:是否可以打开文本文件打印内容而不保存文件?

回答

2

当用户上传文件时,它会保存在临时位置。这就是HTTP服务器的工作原理,在你的PHP脚本被调用之前。如果服务器将所有上传的文件保存在内存中将会很糟糕;如果用户正在上传十几个全部为10 MB的文件,该怎么办?

避免这种情况的唯一方法是不使用文件上传(例如,让用户将文件内容粘贴到提交的文本区域),或者编写自己的HTTP服务器并且不要使用PHP(不是一个实用的解决方案,很可能)。

+0

是否可以保存文件获取内容然后删除文件? –

+1

[“该文件将在请求结束时从临时目录中删除,如果该文件未被移走或重命名。”](http://www.php.net/manual/en/features.file-upload .POST-method.php) –