在php中打开和查看文件

时间:2013-11-09 03:02:41

标签: php html file view

如何在php中打开/查看编辑上传的文件?

我试过了,但它没有打开文件。

$my_file = 'file.txt';
$handle = fopen($my_file, 'r');
$data = fread($handle,filesize($my_file));

我也试过了,但它不会工作。

$my_file = 'file.txt';
$handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file);
$data = 'This is the data';
fwrite($handle, $data);

我想到的就像你想要查看上传的简历,文档或任何其他ms office文件,如.docx,.xls,.pptx,并能够编辑它们,保存并关闭所述文件。< / p>

编辑:最新尝试的代码...

 <?php 
 // Connects to your Database 
 include "configdb.php"; 

 //Retrieves data from MySQL 
 $data = mysql_query("SELECT * FROM employees") or die(mysql_error()); 
 //Puts it into an array 
 while($info = mysql_fetch_array( $data )) 
 { 

 //Outputs the image and other data
 //Echo "<img src=localhost/uploadfile/images".$info['photo'] ."> <br>"; 
 Echo "<b>Name:</b> ".$info['name'] . "<br> "; 
 Echo "<b>Email:</b> ".$info['email'] . " <br>"; 
 Echo "<b>Phone:</b> ".$info['phone'] . " <hr>"; 
 //$file=fopen("uploadfile/images/".$info['photo'],"r+");
 $file=fopen("Applications/XAMPP/xamppfiles/htdocs/uploadfile/images/file.odt","r") or exit("unable to open file");;
 }
 ?> 

我收到错误:

Warning: fopen(Applications/XAMPP/xamppfiles/htdocs/uploadfile/images/file.odt): failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/uploadfile/view.php on line 17
unable to open file

该文件位于该文件夹中,我不知道它不会找到它。

2 个答案:

答案 0 :(得分:1)

可能是:

  1. 服务器上的权限问题。如果是linux机器,请尝试chmod 754 Applications/XAMPP/xamppfiles/htdocs/uploadfile/images/file.odt(您可能需要root)。

  2. apache(或您可能正在使用的任何网络服务器)的问题。确保您已在该站点的配置文件中定义了一个目录条目。文档here

  3. 虽然如果我没记错的话,odt文件只是二进制数据而不是文本信息。这可能就是你要找的东西,我不知道。如果您只是想阅读实际文本,并且您对使用某个库提取它不感兴趣,则需要将其保存为纯文本。如果你真的想在浏览器中编辑这些文件,那么你需要的不仅仅是fopen

答案 1 :(得分:0)

对于基于文本的文件,您可以使用file_get_contentsfile_put_contents

但是,ODT文件是zip压缩的XML文件,因此您需要先解压缩它们:

$zip = new ZipArchive;
$res = $zip->open('Applications/XAMPP/xamppfiles/htdocs/uploadfile/images/file.odt');
if ($res === TRUE) {
  $zip->extractTo('/tmp/myOdt.xml');
  $zip->close();
}

$data = file_get_contents('/tmp/myOdt.xml');

$data .= 'add this to the end';

file_put_contents('path/to/file.txt', $data);

但是,您的问题似乎与文件的实际路径有关。请尝试使用相对路径:"images/file.odt"