Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Ошибка при удалении файла / 11 сообщений из 11, страница 1 из 1
16.08.2013, 08:41
    #38368423
Edea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Ошибка при удалении файла
выгружаю данные из таблицы в эксель..
сам эксель - иероглифы выгружаются и показывается ошибка:
Код: sql
1.
<b>Warning</b>:  unlink(C:\Program Files (x86)\EasyPHP-5.3.9\www\tmp\BFE6.tmp) [<a href='function.unlink'>function.unlink</a>]: Permission denied in <b>C:\Program Files (x86)\EasyPHP-5.3.9\www\unloading.php</b> on line <b>194</b>



при этом формируется tmp файл
если его открыть экселем то все гуд...
что за ошибка?
как исправить?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
<?php
error_reporting(E_ALL ^ E_NOTICE);
define('INC_FILE', true);
$db = require_once('includes/db.php');
$query = '
	SELECT
...идет выборка данных...
';
$options =  array("Scrollable" => SQLSRV_CURSOR_KEYSET);
$db_result = sqlsrv_query($db, $query, array(), $options);
if (sqlsrv_num_rows($db_result) == 0)
{
	exit('Нечего выгружать.');
}
require_once('./includes/class.writeexcel_workbook.inc.php');
require_once('./includes/class.writeexcel_worksheet.inc.php');
$fname = tempnam('./tmp', '');
$workbook = new writeexcel_workbook($fname);
$worksheet = $workbook->addworksheet();
$worksheet->write(0, 0, iconv('UTF-8', 'windows-1251', 'id'));
$worksheet->write(0, 1, iconv('UTF-8', 'windows-1251', 'Отвественное лицо'));
$worksheet->write(0, 2, iconv('UTF-8', 'windows-1251', 'Дата возникновения'));
$worksheet->write(0, 3, iconv('UTF-8', 'windows-1251', 'Дата обнаружения'));
...идет описание полей..
$count = 1;
while (false != ($result = sqlsrv_fetch_object($db_result)))
{
	switch (substr($result->date_discovery, 2, 2)) {
		case 01:
			$month = 'Январь';
			break;
		case 02:
			$month = 'Февраль';
			break;
		case 03:
			$month = 'Март';
			break;
		case 04:
			$month = 'Апрель';
			break;
		case 05:
			$month = 'Май';
			break;
		case 06:
			$month = 'Июнь';
			break;
		case 07:
			$month = 'Июль';
			break;
		case 08:
			$month = 'Август';
			break;
		case 09:
			$month = 'Сентябрь';
			break;
		case 10:
			$month = 'Октябрь';
			break;
		case 11:
			$month = 'Ноябрь';
			break;
		case 12:
			$month = 'Декабрь';
			break;
	}
	if (strlen($result->startdate_incident) == 8)
		$result->startdate_incident = substr_replace(substr_replace($result->startdate_incident, '-', 2, 0), '-', -4, 0);
	if (strlen($result->date_discovery) == 8)
		$result->date_discovery = substr_replace(substr_replace($result->date_discovery, '-', 2, 0), '-', -4, 0);
	if (strlen($result->enddate_incident) == 8)
		$result->enddate_incident = substr_replace(substr_replace($result->enddate_incident, '-', 2, 0), '-', -4, 0);
	if (strlen($result->closedate_incident) == 8)
		$result->closedate_incident = substr_replace(substr_replace($result->closedate_incident, '-', 2, 0), '-', -4, 0);
	$worksheet->write($count, 0, iconv('UTF-8', 'windows-1251', $result->id));
	$worksheet->write($count, 1, iconv('UTF-8', 'windows-1251', $result->user_name));
	..описание полей..
	$count ++;
}
$workbook->close();
header('Content-Type: application/x-msexcel; name="Выгрузка.xls"');
header('Content-Disposition: inline; filename="Выгрузка.xls"');
$fh = fopen($fname, 'rb');
fpassthru($fh);
unlink($fname);
?>
...
Рейтинг: 0 / 0
16.08.2013, 09:03
    #38368437
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Ошибка при удалении файла
Edeaчто за ошибка?Вы пытаетесь удалить открытый файл:
автор
Код: php
1.
2.
3.
$fh = fopen($fname, 'rb');
fpassthru($fh);
unlink($fname);





Edeaкак исправить?Вариантов несколько. Можно закрыть файл перед удалением. Можно использовать другую функцию, которая не требует явного открытия и закрытия файла.
...
Рейтинг: 0 / 0
16.08.2013, 09:08
    #38368440
Edea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Ошибка при удалении файла
/ Можно закрыть файл перед удалением/

а как его закрыть?
...
Рейтинг: 0 / 0
16.08.2013, 09:31
    #38368452
Trololoshka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Ошибка при удалении файла
vkleEdeaчто за ошибка?Вы пытаетесь удалить открытый файл:
автор
Код: php
1.
2.
3.
$fh = fopen($fname, 'rb');
fpassthru($fh);
unlink($fname);





Edeaкак исправить?Вариантов несколько. Можно закрыть файл перед удалением. Можно использовать другую функцию, которая не требует явного открытия и закрытия файла.



Можно закрыть файл перед удалением. Закрыть файл через fopen() перед функцией unlink выдаст ошибку.

Можно использовать другую функцию, которая не требует явного открытия и закрытия файла. Например?
...
Рейтинг: 0 / 0
16.08.2013, 09:57
    #38368477
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Ошибка при удалении файла
TrololoshkaМожно закрыть файл перед удалением. Закрыть файл через fopen() перед функцией unlink выдаст ошибку.Вообще то, fopen() открывает файл, fclose() закрывает.


TrololoshkaМожно использовать другую функцию, которая не требует явного открытия и закрытия файла. Например?Заглядывайте иногда в мануал . Там есть ответы на большинство вопросов.
...
Рейтинг: 0 / 0
16.08.2013, 10:00
    #38368481
Edea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Ошибка при удалении файла
vkle а как мне быть? подскажи
...
Рейтинг: 0 / 0
16.08.2013, 10:07
    #38368496
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Ошибка при удалении файла
Что именно "как"? Как прочитать десяток строк в мануале или что-то другое?
...
Рейтинг: 0 / 0
16.08.2013, 10:08
    #38368498
Edea
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Ошибка при удалении файла
как решить проблему мою
...
Рейтинг: 0 / 0
16.08.2013, 11:24
    #38368671
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Ошибка при удалении файла
...
Рейтинг: 0 / 0
16.08.2013, 14:35
    #38368970
Trololoshka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Ошибка при удалении файла
Edeaкак решить проблему мою


Нужно вставить
Код: sql
1.
ob_end_clean();

перед
Код: sql
1.
fpassthru($fh);
...
Рейтинг: 0 / 0
16.08.2013, 21:56
    #38369489
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[PHP] Ошибка при удалении файла
TrololoshkaНужно вставить
Код: sql
1.
ob_end_clean();


перед
Код: sql
1.
fpassthru($fh);

Хорошая бомба замедленного действия :-)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Ошибка при удалении файла / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]