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

Форум PHP

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

 

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

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

тема: замена файла при upload'e
 
 автор: ronin   (29.03.2006 в 13:48)   письмо автору
 
 

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

<?php
[i]if # логин и пароль[/i]

# при загрузке - удалить предыдущий файл данного юзера
как это реализовать ?
 
 
$ext strrchr($_FILES["filename"]["name"], ".");
    if(
$ext != '.zip') exit("бурые..."); 
  if(
copy($_FILES["filename"]["tmp_name"],
     
"c:/temp/".$_FILES["filename"]["name"]))
   {
     echo(
"Файл успешно загружен <br>");
     echo(
"Характеристики файла: <br>");
     echo(
"Имя файла: ");
     echo(
$_FILES["filename"]["name"]);
     echo(
"<br>Размер файла: ");
     echo(
$_FILES["filename"]["size"]);
     echo(
"<br>Каталог для загрузки: ");
     echo(
$_FILES["filename"]["tmp_name"]);
     echo(
"<br>Тип файла: ");
     echo(
$_FILES["filename"]["type"]);
   } else {
      echo(
"Ошибка загрузки файла");
   }
?>
?>

   
 
 автор: XPraptor   (29.03.2006 в 13:59)   письмо автору
 
   для: ronin   (29.03.2006 в 13:48)
 

if(file_exists($file))unlink($file);

   
 
 автор: ronin   (29.03.2006 в 16:29)   письмо автору
 
   для: XPraptor   (29.03.2006 в 13:59)
 

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

   
 
 автор: malish   (29.03.2006 в 17:21)   письмо автору
 
   для: ronin   (29.03.2006 в 16:29)
 

Юзеры в Б.Д. сидят? Так создавай картинку с именем x.jpg, где x это id юзера

   
 
 автор: Trianon   (29.03.2006 в 17:39)   письмо автору
 
   для: malish   (29.03.2006 в 17:21)
 

Можно и без БД.
Юзеры имеют логин. $name = "$login.jpg";
Если логин допускает появление русских букв, пробелов и прочей нечисти,
то $name = md5($login).'jpg';
Но смысл правильный. Дать файлу имя по первичному ключу.

   
 
 автор: ronin   (29.03.2006 в 17:53)   письмо автору
 
   для: Trianon   (29.03.2006 в 17:39)
 

мне мне нужно время...

   
 
 автор: ronin   (30.03.2006 в 10:18)   письмо автору
 
   для: ronin   (29.03.2006 в 17:53)
 

идея такая: если юзер определен по логину и паролю и вносит данные, предыдущий файл, данного пользователя, даже если у него другое имя - удаляется.


<?php
 
if(file_exists($file))unlink($file);
             echo(
"<br>предыдущий файл удален: ");

#как мне тут прописать, что если логин=файлу...

помогите, плиз!

   
 
 автор: malish   (30.03.2006 в 10:26)   письмо автору
 
   для: ronin   (30.03.2006 в 10:18)
 

В таком случае тебе нужно для каждого юзера хранить путь к его картинке. А почему не хочешь сделать как посоветовали? :)

   
 
 автор: Trianon   (30.03.2006 в 10:30)   письмо автору
 
   для: ronin   (30.03.2006 в 10:18)
 

А с какой стати у него будет другое имя, если Вы ему дадите имя по логину?
#как мне тут прописать, что если логин=файлу...


<?php 
$file 
"$login.jpg";
if(
file_exists($file))unlink($file); 
             echo(
"<br>предыдущий файл удален: "); 

   
 
 автор: ronin   (30.03.2006 в 11:39)   письмо автору
 
   для: Trianon   (30.03.2006 в 10:30)
 


$_POST['$login '] =  $login ;
       $login=$login.zip ;
    $ext = strrchr($_FILES["filename"]["name"], ".");
    if($ext != '.zip') exit("нет! это не зип файл");
    if(file_exists($file))unlink($file);
       $file = "$login.zip";
             echo("<br>файл заменен. ");
   if(copy($_FILES["filename"]["tmp_name"],
     "files/".$_FILES["filename"]["name"]))

конечно это бред. но немогли бы вы подробнее объяснить(размазать), что к чему?

   
 
 автор: Trianon   (30.03.2006 в 11:46)   письмо автору
 
   для: ronin   (30.03.2006 в 11:39)
 

Давайте, не будем причесывать бред.
Давайте поработаем с простым кодом, который всё же хоть как-то, но работает.
Например, просто печатает логин пользователя и имя и размер файла, который тот пытается загрузить. Ничего не проверяя, не сохраняя файл, и т.д.
Если Вы напишите такой пример, мы его вместе доведем до ума.

   
 
 автор: ronin   (30.03.2006 в 11:54)   письмо автору
 
   для: Trianon   (30.03.2006 в 11:46)
 


 $ext = strrchr($_FILES["filename"]["name"], ".");
    if($ext != '.zip') exit("не zip файл");
 if(copy($_FILES["filename"]["tmp_name"],
     "c:/temp/".$_FILES["filename"]["name"]))
   {
     echo("Файл успешно загружен <br>");
     echo("Характеристики файла: <br>");
     echo("Имя файла: ");
     echo($_FILES["filename"]["name"]);
     echo("<br>Размер файла: ");
     echo($_FILES["filename"]["size"]);
     echo("<br>Каталог для загрузки: ");
     echo($_FILES["filename"]["tmp_name"]);
     echo("<br>Тип файла: ");
     echo($_FILES["filename"]["type"]);
   } else {
      echo("Ошибка загрузки файла");
   }

это то, что работает загрузка файла при условии, что это зип файл, нужно, чтобы при этом предыдущий файл, данного пользователя, уничтожался, без разницы какого он названия(файл)

   
 
 автор: Trianon   (30.03.2006 в 12:33)   письмо автору
 
   для: ronin   (30.03.2006 в 11:54)
 

Отсюда не понять, какой логин у пользователя.
Допишите одну строку. Которая напечатала бы логин.

   
 
 автор: ronin   (30.03.2006 в 13:05)   письмо автору
 
   для: Trianon   (30.03.2006 в 12:33)
 


$log="vadim"

   
 
 автор: Trianon   (30.03.2006 в 13:23)   письмо автору
 
   для: ronin   (30.03.2006 в 11:54)
 

<?
$directory 
"";
echo 
"<br> Пользователь: $log";
$ext strrchr($_FILES["filename"]["name"], "."); 
    if(
$ext != '.zip') exit("не zip файл"); 
$file "$directory$log.zip";
if(
file_exists($_FILES["filename"]["tmp_name"]))
{
    if(
file_exists($file))
    {
        
unlink($file);
       echo 
'<br>Старый файл удален';
    }
     if(
move_uploaded_file($_FILES["filename"]["tmp_name"], $file))
     {
     echo(
"<br>Файл успешно загружен"); 
     echo(
"<br>Характеристики файла: <br>"); 
     echo(
"<br>Имя файла: "); 
     echo(
$_FILES["filename"]["name"]); 
     echo(
"<br>Размер файла: "); 
     echo(
$_FILES["filename"]["size"]); 
     echo(
"<br>Каталог для загрузки: "); 
     echo(
$_FILES["filename"]["tmp_name"]); 
     echo(
"<br>Тип файла: "); 
     echo(
$_FILES["filename"]["type"]); 
     echo(
"<br>Размещен в: "); 
     echo(
$file); 
   } else 
      echo(
"<br>Ошибка загрузки файла"); 
}
 
?>

   
 
 автор: ronin   (30.03.2006 в 15:26)   письмо автору
 
   для: Trianon   (30.03.2006 в 13:23)
 

я несовсем понял, но работает!!! Спасибо!
у меня авторизация в другом файле, который я подключил так

<?
require('config.dag');
?>

   
Rambler's Top100
вверх

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