Вот часть выполняющего сенария загрузки фаилов. Проблема в том, что если пользователь загрузит фаил содержащий в себе пробелы, или такой же по названию фаил уже будет, то возникнут проблемы. Пожалуйста, подскажите как его изменить что бы у первого фаила и каждого последующего имя было 1,2,3 и т.д. в самом имени фаила и ссылке на него, но сохранялось введённое, в фаиле read.txt.
if ($File) {
print ("File name: $File_name<br>");
print ("File size: $File_size.bytes<p>\n");
if (copy ($File, "files/$Rasdel/$File_name")) {
unlink ($File);
if ($File) {
$File = ("files/$Rasdel/read.txt");
$Open = fopen ($File, "a+");
$Massiv = file ($File);
if (is_writeable ($File)) {
$Write = ("<a href=$File_name class=link3 target=_blank >$File_name<br>$File_size.bytes</a>\t$Description\n");
$Write2 = fwrite ($Open, "$Write");
$Close = fclose ($Open);
$Worked = TRUE;
} else {
$Worked = FALSE;
print ("Ошибка в записи информации."); }
} else {
$Worked = FALSE;
print ("Error"); }
print ("Ваш фаил успешно загружен!");
} else {
print ("Ошибка в сохранении фаила."); }
} else {
print ("Error"); }
Спустя 2 часа, 24 минуты, 54 секунды (6.04.2008 - 18:09) vasa_c написал(а):
Воспользуйтесь тегом [ code] для того, чтобы было хоть как-то понятна вложенность блоков.
Объясните, что означают эти все переменные взявшиеся ниоткуда.
Напишите комментарии к коду, что вы делаете и где возникли вопросы.
Объясните, что означают эти все переменные взявшиеся ниоткуда.
Напишите комментарии к коду, что вы делаете и где возникли вопросы.
Спустя 4 часа, 4 минуты (6.04.2008 - 22:13) Real_EGGMAN написал(а):
Цитата(vasa_c @ 6.4.2008, 19:09) [snapback]36463[/snapback]
Воспользуйтесь тегом [ code] для того, чтобы было хоть как-то понятна вложенность блоков.
Объясните, что означают эти все переменные взявшиеся ниоткуда.
Напишите комментарии к коду, что вы делаете и где возникли вопросы.
Объясните, что означают эти все переменные взявшиеся ниоткуда.
Напишите комментарии к коду, что вы делаете и где возникли вопросы.
На счёт него я всё описал выше, но это не столь важно. Я бы хотел просто понять как можно каждой новой переменной $File (фаилу) менять название. Например загрузили фаил "Документ WordPad (3).doc" в переменную, и у него самого должно стать название "1", следующему "2" и т.д.
Работаю над каталогом фаилов, но никак не могу решить эту серьёзную проблему.
Код |
/* Получение фаила из формы */ if ($File) { /* Распечатка данных фаила */ print ("File name: $File_name<br>"); print ("File size: $File_size.bytes<p>\n"); /* Копирование фаила из временного хранилища в папку */ if (copy ($File, "files/$Rasdel/$File_name")) { /* Удаление фаила из временного хранилища */ unlink ($File); if ($File) { /* Открытие фаила куда будут записыватся его данные */ $File = ("files/$Rasdel/read.txt"); $Open = fopen ($File, "a+"); $Massiv = file ($File); /* Запись данных */ if (is_writeable ($File)) { $Write = ("<a href=$File_name class=link3 target=_blank >$File_name<br>$File_size.bytes</a>\t$Description\n"); $Write2 = fwrite ($Open, "$Write"); $Close = fclose ($Open); $Worked = TRUE; /* Ну и закрывающие инструкции */ } else { $Worked = FALSE; print ("Ошибка в записи информации."); } } else { $Worked = FALSE; print ("Error"); } print ("Ваш фаил успешно загружен!"); } else { print ("Ошибка в сохранении фаила."); } } else { print ("Error"); } |
P.S> Надеюсь теперь обрабатывающий сенарий можно разглядеть. (извините, на форумах бываю редко)
Спустя 4 дня, 12 часов, 46 секунд (11.04.2008 - 10:13) vasa_c написал(а):
Цитата
copy ($File, "files/$Rasdel/$File_name")
Что означает каждый из двух аргументов этой функции?
И до сих пор не понятно большинство инструкций:
Цитата
/* Получение фаила из формы */
if ($File) {
if ($File) {
Это как?
Спустя 2 часа, 15 секунд (11.04.2008 - 12:14) Real_EGGMAN написал(а):
Цитата(vasa_c @ 11.4.2008, 11:13) [snapback]36858[/snapback]
Цитата
copy ($File, "files/$Rasdel/$File_name")
Что означает каждый из двух аргументов этой функции?
И до сих пор не понятно большинство инструкций:
Цитата
/* Получение фаила из формы */
if ($File) {
if ($File) {
Это как?
1) Первый - раздел фаила, второй имя фаила. см. ниже форму и на страничке откройте исходный код.
2) http://empireline.summerhost.info/form.html вот форма для которой этот обрабатывающий сенарий. $File - это сам фаил загруженный в форму.
Но за это время я уже практически решил задачу, остались только две проблемы:
Как можно изменить имя фаила, выделяя его параметром $File_name и не затронуть его тип, и в столбце "Колличество фаилов" число каждый раз увеличивалось на 1. Но по чему то дальше единицы не идёт.
Вот новый код.
Код |
if ($File) { /* 1 */ print ("File name: $File_name<br>"); print ("File size: $File_size.bytes<p>\n"); /* 2 - Второе имя фаила */ $File2_name = ($File_name); /* 4 - Колличество фаилов */ $File2 = ("files/$Rasdel/nambes.txt"); $Open = fopen ($File2, "w+"); $Nambes = $File2; $File2_name = ("$Nambes"); $File2_name = ($File2_name + "1"); $Write = fwrite ($Open, "$File2_name"); $Close2 = fclose ($Open); /* 5 - Ссылка */ $File1 = ("files/$Rasdel/read.txt"); $Open = fopen ($File1, "a+"); $URL = ("<a href=files/$Rasdel/$File2_name class=link3 target=_blank>$File_name</a><br>$File_size.bytes\t$Description\n"); $Write = fwrite ($Open, "$URL"); $Close = fclose ($Open); $Worked = TRUE; /* 6 - Сохранение фаила */ if (copy ($File2, "files/$Rasdel/$File2_name")) { $Worked = TRUE; unlink ($File); } else { $Worked = FALSE; print ("Error"); }; } else { $Worked = FALSE; print ("Фаила не получено"); } |
Спустя 1 час, 27 минут, 2 секунды (11.04.2008 - 13:41) Real_EGGMAN написал(а):
Проблему с типом пологаю можно решить кодом $Type = strtok ($File2_name, "."); второй строкой в втором разделе, но читает символы ДО точки, а нужно после...
_____________
Мне нужна вся вселенная, и я её получу!