2013-11-09 4 views
1

Как открыть/просмотреть для редактирования загруженного файла в php?открытие и просмотр файла в 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 и иметь возможность их редактировать, сохранять и закрывать указанный файл.

редактировать: последние пытались код ...

<?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 

файл находится в этой папке, я не знаю, что это не найдет его.

+0

Я бы не использовал SQL для чтения файлов. Какая часть вашего обычного fopen не работает? Что такое сообщение об ошибке? –

+0

Также убедитесь, что (в зависимости от вашей версии php) у вас нет open_basedir, установленного в php.ini - это повлияет на то, какие каталоги разрешены для чтения по php. И убедитесь, что путь верен - следите за возможной чувствительностью к регистру. Это либо проблема с не найденной, либо разрешениями. – helion3

+0

путь точный сэр .. –

ответ

1

Это может быть:

  1. проблема разрешения на сервере. Если это Linux-машина, попробуйте chmod 754 Applications/XAMPP/xamppfiles/htdocs/uploadfile/images/file.odt (вам может понадобиться root).

  2. Проблема с apache (или любым другим веб-сервером, который вы могли бы использовать). Убедитесь, что вы указали запись каталога в файле конфигурации для этого сайта. Документация here.

Хотя, если я правильно помню, файл odt будет представлять собой двоичные данные, а не текстовую информацию. Это может быть то, что вы ищете, я не знаю. Если вы просто хотите прочитать фактический текст, и вы не заинтересованы в использовании какой-либо библиотеки для ее извлечения, вам нужно сохранить его как обычный текст. Если вы на самом деле пытаетесь отредактировать эти файлы в браузере, вам понадобится намного больше, чем просто fopen.

+0

+1 предложение о разрешениях. – helion3

+0

его mac. я думаю, что это то же самое с linux? как я могу редактировать разрешение через терминал? –

+0

@ChristianBurgos так же, как linux: chmod – Tivie

0

Для текстовых файлов на основе вы можете использовать file_get_contents и file_put_contents

Однако ODT файлы почтового индекса сжатые файлы 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"

+0

это совсем не так, как fopen? –

+0

file_get_contents читает текстовые файлы, fopen может читать двоичные файлы. Прочтите мой обновленный ответ – Tivie

+0

это то же самое с файлами Microsoft Office? –

Смежные вопросы