Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2009, 01:37   #1
GrEFon
 
Регистрация: 24.11.2007
Сообщений: 7
Вопрос Замена файла при uploade

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

PHP код:
<?php

$_FILES
['userfile']['name'];
$_FILES['userfile']['type'];
$_FILES['userfile']['size'];
$_FILES['userfile']['tmp_name'];
$_FILES['userfile']['error'];

$uploaddir '../';
$uploadfile $uploaddir basename($_FILES['userfile']['name']);

print 
"<pre>";
if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    print 
"Файл обновлен!";
} else {
    print 
"Ошибка!";
}
print 
"</pre>";

?>
сам php код uploada у меня получился такой. что нужно в него добавить?
Заранее спасибо!
GrEFon вне форума Ответить с цитированием
Старый 03.02.2009, 01:57   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Смотря где вы сохраняете и как регистрируете сохраненные файлы (что очень упростило бы задачу).
Как вы понимаете, загруженный файл тут: move_uploaded_file($_FILES['userfile']['tmp_name']
МОжете искать название файла в папке с сохраненными файлами на вашем сайте. Если такого файла нет - просто копируем его туда. Ессли же есть, копируем форсированнно или удаляем имеющийся, а потом копируем.
SkyM@n вне форума Ответить с цитированием
Старый 03.02.2009, 03:49   #3
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

PHP код:
$_FILES['userfile']['name']; 
$_FILES['userfile']['type']; 
$_FILES['userfile']['size']; 
$_FILES['userfile']['tmp_name']; 
$_FILES['userfile']['error']; 

$uploaddir '../'
$uploadfile $uploaddir basename($_FILES['userfile']['name']); 
//---
clearstatcache();//очистим кеш для избежания ошибки
if(is_file($uploadfile)){//проверяем есть ли такой файл
  
if(@unlink($uploadfile)){//удаляем если есть
    
if (@move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { 
      
chmod($uploadfile,0777);//устанавливаем права
      
print "Файл обновлен!"
    }else{ 
      print 
"Ошибка при копировании!"
    }   
  }else{
//если файл заблокирован
    
print "Невозможно удалить файл!"
  }
}else{
//сли нет то пишем
  
if (@move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { 
    
chmod($uploadfile,0777);//устанавливаем права
    
print "Файл записан!"
  }else{ 
    print 
"Ошибка при копировании!"
  }  

Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 03.02.2009, 20:56   #4
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

проверка существования файла - file_exists('file_path');
удаление - unlink('file_path');

получается что-то вроде
PHP код:
if(file_exists('/home/site/www/image.jpg'))
{
unlink('/home/site/www/image.jpg');
}
//продолжение вашего кода - сохранение нового файла 
свободен...
wall66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при чтении из файла Satorin Общие вопросы Delphi 2 17.12.2008 11:32
Ошибка при чтении БД из файла!! sting БД в Delphi 4 14.12.2008 22:23
C++: ошибка при открытии файла Retiz Помощь студентам 2 30.08.2008 22:12
Замена файла базы данных Gladiator БД в Delphi 8 28.05.2008 21:30
ошибка при открытии файла pas Var17 Общие вопросы Delphi 2 23.01.2008 15:30