[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: загрузка файла через форму
quickxyan
файл загружается, но вот имя стает таким карта.jpg - кодировка UTF-8

if(copy($_FILES["nositel"]["tmp_name"],"upload/".$_FILES["nositel"]["name"]))


может поставить win-1251 или можно как-то схитрить?



Спустя 14 минут, 18 секунд (7.05.2011 - 11:56) Zerstoren написал(а):
Цитата (quickxyan @ 7.05.2011 - 08:41)
файл загружается, но вот имя стает таким карта.jpg - кодировка UTF-8

if(copy($_FILES["nositel"]["tmp_name"],"upload/".$_FILES["nositel"]["name"]))


может поставить win-1251 или можно как-то схитрить?

может лучше файл переименовать? =)

Я не думаю что аплоад файлы должны иметь какое-то здравое название

Спустя 12 минут, 33 секунды (7.05.2011 - 12:08) quickxyan написал(а):
спасибо за идею. подумаю над ней. тогда надо придумать алгоритм чтобы имена не повторялись.
впринципе можно было бы сделать чтобы в имени была постоянно возрастающее число.

Спустя 47 минут, 39 секунд (7.05.2011 - 12:56) Zerstoren написал(а):
Цитата (quickxyan @ 7.05.2011 - 09:08)
спасибо за идею. подумаю над ней. тогда надо придумать алгоритм чтобы имена не повторялись.
впринципе можно было бы сделать чтобы в имени была постоянно возрастающее число.


А зачем его придумывать?

создаете массив со всеми анг буквами и цифры от 0 до 9
т.е. получается 38 символов

тасуете их и создаете строчку длинной 16+ символов.

А чтоб вам не парится, вот мона такой пример юзать)

	$file_array = array('A','a','e','i','N','n','e','n','B','b','b','i','O','o','o','u','C','c','s','i','P','p','p','i','D','d','d'
,'i','Q','q','k','j','u','E','e','i','R','r','a','F','f','e','f','S','s','e','s','G','g','d','i','T','t','t','i','H','h
'
,'e','i','7','8','9','0','1','2','3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9','0','1','2',
'3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9','0');
$new_name = '';
for($i=0;$i<40;$i++){
shuffle($file_array);
$new_name .= $file_array[$i];
}

Спустя 51 минута, 4 секунды (7.05.2011 - 13:47) SerginhoLD написал(а):
Цитата (quickxyan @ 7.05.2011 - 08:41)
файл загружается, но вот имя стает таким карта.jpg

сталкивался я с этой штукой. Это вроде от Apach зависит, он тоесть все ломает. Точнее Денвер со стандартными настройками ))

Как вариант сделай транслит имени файла

И еще насчет повторяющегося имени. Я их в базе хранил, поэтому перед загрузкой проверял есть такое имя, и если есть добавлял например знак подчеркивания _

Спустя 4 часа, 51 минута, 42 секунды (7.05.2011 - 18:39) walerus написал(а):

function generateText($length = 10, $small = true, $big = false, $numbers = false)
{
$allowable_characters = '';
if ($small)
$allowable_characters .= 'abcdefghjklmnopqrstuvwxyz';
if ($big)
$allowable_characters .= 'ABCDEFGHJKLMNOPQRSTUVWXYZ';
if (($numbers) || (!$allowable_characters))
$allowable_characters .= '0123456789';

$ps_len = strlen($allowable_characters);
$pass = '';
for($i = 0; $i < $length; $i++)
$pass .= $allowable_characters[mt_rand(0,$ps_len-1)];

return $pass;
}


Проще функцию сделать, чтоб каждый раз не прописывать... Вызывать так.

$file_name = generateText(rand(7, 10), true, true, false);


1й параметр - Длинна генерируемой строки (число)
2й параметр - Использовать в имени маленькие буквы (true/false)
3й параметр - Использовать в имени БОЛЬШИЕ буквы (true/false)
4й параметр - Использовать в имени числа (true/false)

Детище не мое личное, но по моему очень универсальное :rolleyes:

Спустя 1 час, 18 минут, 52 секунды (7.05.2011 - 19:58) quickxyan написал(а):
спасибо всем за отклик. я впринципе так и думал, что можно дать картинкам абсолютно рандомные имена, но подумал, что могут быть частые совпадения, хотя если взять большую строку, то думаю норм будет)
Zerstoren
))) я тоже так всегда делаю рандомные строки, как в твоем коде)))

Спустя 47 минут, 41 секунда (7.05.2011 - 20:45) ИНСИ написал(а):
quickxyan вот:

    /**
* Создает уникальный набор символов
* $len - Количество символов в случайном имени
*/

function uniqid($len = 5) {
$arr = array_merge( range(0, 9), range('a','z'), range('A', 'Z') );
shuffle($arr);
foreach(array_rand($arr, $len) as $index)
$key .= $arr[$index];
return $key;
}


_____________
печатаю со скоростью 320 минут в знак...

плюсуем карму не стесняемся
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.