Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как задать рандомное имя для загружаемого файла?
Форумы портала PHP.SU » » Вопросы новичков » Как задать рандомное имя для загружаемого файла?

Страниц (2): [1] 2 »
 

1. Ydxsa - 29 Апреля, 2019 - 20:07:54 - перейти к сообщению
Добрый вечер, разобрался с загрузкой файлов на сервер, но появилась проблема. Необходимо задать рандомное имя для файла, который загружается на сервер, дабы все названия были уникальны(желательно в md5). Вот такой код обработчика у меня:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2.  
  3. if(isset($_FILES)) {
  4.  
  5. $allowedTypes = array('application/octet-stream','application/zip','application/msword','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/vnd.oasis.opendocument.text','application/vnd.ms-word.document.12','application/vnd.openxmlformats-officedocument.word');
  6.  
  7. $uploadDir = "directory/";
  8.  
  9. for($i = 0; $i < count($_FILES['file']['name']); $i++) {
  10.  
  11. $uploadFile[$i] = $uploadDir . ($_FILES['file']['name'][$i]);
  12.  
  13. $fileChecked[$i] = false;
  14.  
  15. echo $_FILES['file']['name'][$i]." | ".$_FILES['file']['type'][$i]." — ";
  16.  
  17. for($j = 0; $j < count($allowedTypes); $j++) {
  18.  
  19. if($_FILES['file']['type'][$i] == $allowedTypes[$j]) {
  20.  
  21. $fileChecked[$i] = true;
  22.  
  23. break;
  24.  
  25. }
  26.  
  27. }
  28.  
  29. if($fileChecked[$i]) {
  30.  
  31. if(move_uploaded_file($_FILES['file']['tmp_name'][$i], $uploadFile[$i])) {
  32.  
  33. echo "Success <br>";
  34.  
  35. } else {
  36.  
  37. echo "Error".$_FILES['file']['error'][$i]."<br>";
  38.  
  39. }
  40.  
  41. } else {
  42.  
  43. echo "Error TYPE FILE!<br>";
  44.  
  45. }
  46.  
  47. }
  48.  
  49. } else {
  50.  
  51. echo "Вы не прислали файл!" ;
  52.  
  53. }
  54.  
  55. ?>
2. LIME - 30 Апреля, 2019 - 11:07:46 - перейти к сообщению
тогда уж бери хэш от всего содержимого
чтобы копии одного файла не загружать
PHP:
скопировать код в буфер обмена
  1. $newName = md5(file_get_contents($_FILES['file']['tmp_name'][$i]));
3. Строитель - 30 Апреля, 2019 - 12:36:48 - перейти к сообщению
LIME, может удобнее было бы md5_file() ?
4. LIME - 30 Апреля, 2019 - 12:48:06 - перейти к сообщению
Строитель и не только удобнее но и быстрее подозреваю
я было подумал поискать как md5 к стримам применить...но...
Здорово
5. LIME - 01 Мая, 2019 - 18:32:36 - перейти к сообщению
Строитель ты вообще в курсе что алгоритм md5 умеет дохэшировать строку
на этом основана одна уязвимость
короче хэш для подписи надо обязательно препендить
не передавать подпись аппендом
если ты понимаешь о чем я
6. Строитель - 01 Мая, 2019 - 18:51:15 - перейти к сообщению
LIME пишет:
Строитель ты вообще в курсе что алгоритм md5 умеет дохэшировать строку
на этом основана одна уязвимость
короче хэш для подписи надо обязательно препендить
не передавать подпись аппендом
если ты понимаешь о чем я
Не, не знал - я не настолько в тонкостях разбираюсь.
7. LIME - 01 Мая, 2019 - 18:59:21 - перейти к сообщению

Спойлер (Отобразить)
8. Строитель - 01 Мая, 2019 - 19:40:48 - перейти к сообщению

Спойлер (Отобразить)
9. LIME - 01 Мая, 2019 - 19:45:48 - перейти к сообщению

Спойлер (Отобразить)
10. Строитель - 01 Мая, 2019 - 19:59:06 - перейти к сообщению

Спойлер (Отобразить)
11. LIME - 01 Мая, 2019 - 20:04:23 - перейти к сообщению

Спойлер (Отобразить)
12. Строитель - 01 Мая, 2019 - 21:20:41 - перейти к сообщению

Спойлер (Отобразить)
13. Мелкий - 02 Мая, 2019 - 12:43:59 - перейти к сообщению

Спойлер (Отобразить)
14. LIME - 02 Мая, 2019 - 13:16:53 - перейти к сообщению
У меня самая лучшая самооценка))
15. Строитель - 02 Мая, 2019 - 13:28:14 - перейти к сообщению

Спойлер (Отобразить)

 

Powered by ExBB FM 1.0 RC1