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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Файлы: изменение имя файла

Сообщения:  [1-9] 

 
 автор: P@Sol   (29.08.2006 в 09:06)   письмо автору
 
   для: Panker   (28.08.2006 в 17:56)
 

тяжело, когда собеседник не говорит по-русски.

Функция rename() имеет двойное назнасчение - кроме переименования файлов, она также выполняет их перемещение. Следует соблюдать осторожность при указании пути к файлу - относительный путь соотносится с местоположением сценария, а не исходного файла.

   
 
 автор: kasmanaft   (28.08.2006 в 23:55)   письмо автору
 
   для: Panker   (28.08.2006 в 17:56)
 

//// да и потом ошибочка
//// http://cms-ka/admin/files/upload/submit.php
Что за ошибочка?

В $_FILES["filename"]["name"] хранится реальное имя файла, оно может пригодиться при переименовывании залитого файла

Файл при заливке заливается во временную дирректорию, там ему дается временное имя
типа этого "var/tmp/phplRFOUR" - это имя файла, содержащее в себе имена папок, где он лежит ... Собсно этот файл нужно переименовать - дать ему имя, содержащее другой путь, тот куда его надо положить и само имя файла вконце (вместе с расширением)


<?
if(copy($_FILES["filename"]["tmp_name"], // копируем файл со времменным именем
  
"../../../files/".$_FILES["filename"]["name"])) // даем ему имя "../../../files/".$_FILES["filename"]["name"]


Почему не работает данный код можно сказать из ошибочки

   
 
 автор: Panker   (28.08.2006 в 17:56)   письмо автору
 
   для: P@Sol   (28.08.2006 в 16:45)
 

простите, немного не допонел, у меян проблема в тмо что - int rename ( string "$lastnam", string "$name") мне не как не переименовать его, вроде бы его имя загоняю в переменую и так далее и не получается, вот в чём проблема... или я вас ваше не понел :(

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

   
 
 автор: P@Sol   (28.08.2006 в 16:45)   письмо автору
 
   для: Panker   (28.08.2006 в 16:18)
 



<?php
   
if($_FILES["filename"]["size"] > 1024*1*1024)
   {
     echo (
"Размер файла превышает мегабайт");
     exit;
   }
   if(
copy($_FILES["filename"]["tmp_name"],
     
"$DOCUMENT_ROOT/myphp/phonebook/tb".$_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(
"Ошибка загрузки файла");
   }
?>

в $_FILES["filename"]["tmp_name"] содержится временное имя загружаемого файла (имеет вид tmp*), а $_FILES["filename"]["name"] содержится имя файла (например, name.gif), которое есть на самом деле, вместо этой переменной вы можете указать любое понравившееся вам имя

   
 
 автор: Panker   (28.08.2006 в 16:18)   письмо автору
 
   для: Panker   (27.08.2006 в 14:35)
 

UP

   
 
 автор: Panker   (27.08.2006 в 14:35)   письмо автору
 
   для: Panker   (25.08.2006 в 17:07)
 

директорию где лежит файл указывать тоисть писать так
int rename ( string "../../../files/$lastnam", string "../../../files/$name")
ли прсото без директорий
int rename ( string "$lastnam", string "$name")
да и потом ошибочка
http://cms-ka/admin/files/upload/submit.php
но так или иначе ещё вопрос!
разрищение сохраняется? меняется тока имя?

и вот! код весь, рно что то только одни ошибки у меня :(


<?php 
Error_Reporting
(E_ALL & ~E_NOTICE);
require_once(
"../../../include/mysql.php");

   if(
$_FILES["filename"]["size"] > 1024*4*1024)
   {
     echo (
"Размер файла превышает четыри мегабайта, или на сервере максимальный размер 2 мегабайта");
     exit;
   }
   if(
copy($_FILES["filename"]["tmp_name"],
     
"../../../files/".$_FILES["filename"]["name"]))
   {
   } 
   else {
   echo(
"Ошибка загрузки файла");
   } 
$name $_POST['name'];
$date date("d.m.Y");
////////////////
$ath mysql_query("INSERT INTO files (files_id, files_name, files_data) VALUES ('','$name','$date');");
$sql_res=mysql_query($ath,$dbcnx);
///////////////
$lastnam $_FILES["filename"]["name"];

int rename string "$lastnam"string "$name")
?>

   
 
 автор: Panker   (25.08.2006 в 17:07)   письмо автору
 
   для: P@Sol   (25.08.2006 в 15:34)
 

int rename ( string old, string new)
как японел тут прсото переменые подставить надо... с этим понятнО!
а вот формат файла вводить html exe rar и так далее?
или нет?
и ещё ене понел вот что!
как мне при заливки его изменять?
или делать заливку запоминать имя подставлять имя сюда string old, и новое имя из формы сюда string new) ?
да? так всё понял точней всё правельно или ненмого не так?

   
 
 автор: P@Sol   (25.08.2006 в 15:34)   письмо автору
 
   для: Panker   (25.08.2006 в 14:31)
 

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

см. функции copy, rename

   
 
 автор: Panker   (25.08.2006 в 14:31)   письмо автору
 
 

Пожалуйсто. что то не могу в книге найти как имя у файла менятЬ!
тоисть при точней ПЕРЕД загрузкой я указываю имя, и файл в директорию заливается с моим именем! с тем что я указал!
скажите плиз как сделать )

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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