Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удалить файл ссылкой
 
 автор: ZetRider   (17.02.2006 в 13:25)   письмо автору
 
 

Привет, помогите пожалуйста сделать скрипт, который бы удалял файл при нажатие на ссылку...
тоесть есть скрипт

<?php 
if ($handle opendir('upload')) {
   while (
false !== ($file readdir($handle))) { 
       if (
$file != "." && $file != "..") { 
           echo 
"$file<hr>\n"
       } 
   }
   
closedir($handle); 
}
?>
<br>


Он выводит список файлов, и проблема заключается в том, чтоб возле каждого выведенного файла была ссылка которая удаляла бы файл тот рядом с которым ета ссылка..
Визуально:
1.txt [delete]
2.txt [delete]
надеюсь понятно обяснил.. Заранее спасиб! :)

   
 
 автор: Loki   (17.02.2006 в 13:41)   письмо автору
 
   для: ZetRider   (17.02.2006 в 13:25)
 

index.php

<?php 
if ($handle opendir('upload')) { 
   while (
false !== ($file readdir($handle))) { 
       if (
$file != "." && $file != "..") { 
           echo 
"<a href='del.php?file=$file'>$file</a><hr>\n"
       } 
   } 
   
closedir($handle); 

?> 
<br> 

del.php
<?
$file
=$_GET['file'];
unlink($file);
header("Locaiton: index.php");
?>

Примерно так.

   
 
 автор: ZetRider   (17.02.2006 в 16:00)   письмо автору
 
   для: Loki   (17.02.2006 в 13:41)
 

Выводит ошибку :

Warning: unlink() failed (No such file or directory) in F:\www\1\del.php on line 4

del.php

<meta http-equiv="refresh" content="0;URL=index.php">
<?
$file
=$_GET['file']; 
unlink($file); 
?>


че нетак?

   
 
 автор: Loki   (17.02.2006 в 16:05)   письмо автору
 
   для: ZetRider   (17.02.2006 в 16:00)
 

файл del.php находится в той же директории что и удаляемый файл?

   
 
 автор: ZetRider   (17.02.2006 в 16:07)   письмо автору
 
   для: Loki   (17.02.2006 в 16:05)
 

Нет конечно же)
Файлы которые нуждно удалять находятся в папке upload вот в строке индекса указано:
if ($handle = opendir('upload')) { 

;)

   
 
 автор: Loki   (17.02.2006 в 16:11)   письмо автору
 
   для: ZetRider   (17.02.2006 в 16:07)
 

тогда

<? 
$file
="upload/".$_GET['file']; 
unlink($file); 
header("Locaiton: index.php"); 
?> 

   
 
 автор: ZetRider   (17.02.2006 в 16:14)   письмо автору
 
   для: Loki   (17.02.2006 в 16:11)
 

Спасиб, а мона сделать чтобы значение папки передавалось из index.php, просто если захочется менять, то придется и в del.php и в index.php ))
Теперь index.php выглядит так:

<?php 
$folder 
'2'
if (@
$handle opendir($folder)) { 
   while (
false !== ($file readdir($handle))) { 
       if (
$file != "." && $file != "..") { 
           echo 
"<a href='del.php?file=$file'>$file</a><hr>\n"
       } 
   } 
   
closedir($handle); 

else echo 
"Такой папки несуществует!"
?> 
<br>


И еще вопросик, если нет файлов в папке то как вывести что файлов в папке нет..?

   
 
 автор: Loki   (17.02.2006 в 16:26)   письмо автору
 
   для: ZetRider   (17.02.2006 в 16:14)
 

я бы сделал файл config.php, где написал

<?
$folder
="имя папки";
?>


а в скриптах подключал его

include "config.php";



<?php 
$folder 
'2'
$emtry=true;
if (@
$handle opendir($folder)) { 
   while (
false !== ($file readdir($handle))) { 
       if (
$file != "." && $file != "..") { 
           echo 
"<a href='del.php?file=$file'>$file</a><hr>\n"
           
$emtry=false;
       } 
   } 
   
closedir($handle); 
   if (
$emtry) echo "Папка пуста!";

else echo 
"Такой папки несуществует!"
?> 

   
 
 автор: ZetRider   (17.02.2006 в 16:36)   письмо автору
 
   для: Loki   (17.02.2006 в 16:26)
 

Спасибо!
Полностью скрипт выглядит так:
index.php

<?php 
include "config.php";
$emtry=true
if (@
$handle opendir($folder_uploader)) { 
   while (
false !== ($file readdir($handle))) { 
       if (
$file != "." && $file != "..") { 
           echo 
"<a href='del.php?file=$file'>$file</a><hr>\n"
           
$emtry=false
       } 
   } 
   
closedir($handle); 
   if (
$emtry) echo "Папка пуста!"

else echo 
"Такой папки несуществует!"
?>
<br>


del.php

<meta http-equiv="refresh" content="0;URL=index.php">
<?
include "config.php";
$file="$folder_uploader/".$_GET['file']; 
unlink($file); 
?>


config.php

<?
$folder_uploader
="2";
?>

   
 
 автор: Loki   (17.02.2006 в 16:49)   письмо автору
 
   для: ZetRider   (17.02.2006 в 16:36)
 

Только в del.php у вас переадресация происходит раньше чем удаляется файл. В случае плохой связи или большой загрузки сервера могут быть глюки

   
 
 автор: ZetRider   (17.02.2006 в 17:02)   письмо автору
 
   для: Loki   (17.02.2006 в 16:49)
 

Ясно, приму к сведению, а вот еще чтоы размер файла писал... вот есть скрипт который пишет размер файла в килобайтах:

<? 
$file_name 
"text.txt"
$sizesubstr(filesize($file_name), 0, -3); 
echo 
$size." Кбайт"
?>


Так вот.. никак неполучается его внедрить в скрипт:
index.php

<?php 
include "config.php";
$emtry=true
if (@
$handle opendir($folder_uploader)) { 
   while (
false !== ($file readdir($handle))) { 
       if (
$file != "." && $file != "..")
 { 
           echo 
"<a href='edit_upload_file.php?file=$file'>[delete]</a>  <b>$file</b> <hr>\n"
           
$emtry=false
       } 
   } 
   
closedir($handle); 
   if (
$emtry) echo "<center><h3>Папка пуста!</h3></center>"

else echo 
"Такой папки несуществует!"
?>
<br>


:\

   
 
 автор: Loki   (17.02.2006 в 17:16)   письмо автору
 
   для: ZetRider   (17.02.2006 в 17:02)
 

<?php 
include "config.php"
$emtry=true
if (@
$handle opendir($folder_uploader)) { 
   while (
false !== ($file readdir($handle))) { 
       if (
$file != "." && $file != ".."

           
$sizesubstr(filesize($folder_uploader."/".$file), 0, -3); 
           echo 
"<a href='edit_upload_file.php?file=$file'>[delete]</a>  <b>$file</b>($size Кб)<hr>\n"
           
$emtry=false
       } 
   } 
   
closedir($handle); 
   if (
$emtry) echo "<center><h3>Папка пуста!</h3></center>"

else echo 
"Такой папки несуществует!"
?> 
<br> 

   
 
 автор: ZetRider   (17.02.2006 в 20:33)   письмо автору
 
   для: Loki   (17.02.2006 в 17:16)
 

А вот если файл занимает 0 кб то он ничего невыводит,.. а как тогда написать чтоб он писл 0 ?

   
 
 автор: Loki   (18.02.2006 в 13:03)   письмо автору
 
   для: ZetRider   (17.02.2006 в 20:33)
 


if (!$size) $size=0;

   
 
 автор: ZetRider   (18.02.2006 в 15:11)   письмо автору
 
   для: Loki   (18.02.2006 в 13:03)
 

Спасиба!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования