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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2009, 19:30   #1
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию Модуль загрузки файлов

Вот такой вот модуль
Код:
<? session_start(); ?>
<html>
<head>
  <title>Результат загрузки файла</title>
  <body>
      <h2><p><b> Форма для загрузки файлов </b></p></h2>
      <form method="post" enctype="multipart/form-data">
      <input type="file" name="filename"><br> 
      Комментарий:  <input name="comments"><br>
      <input type="submit" value="Загрузить"><br>
      </form>
</body>
</head>
<body>
<?php
include('config.php');
   if($_FILES["filename"]["size"] > 1024*1*1024)
   {
     echo ("Размер файла превышает один мегабайт");
     exit;
   }
   include('config.php');

   if(copy($_FILES["filename"]["tmp_name"],
     "c:/xampp/htdocs/engine/files/".$_FILES[filename][name]))
   {
  $query = "INSERT INTO galary (name, comments, author) VALUES ('$_FILES[filename][name]', '$_POST[comments]', '$_SESSION[admin]')";
   $result = mysql_query ($query);} else {echo "Выберите файл";}
   
?>
</body>
</html>
В результате получается такой запрос
Код:
INSERT INTO galary (name, comments, author) VALUES ('Array[name]', 'test', 'spein')
к базе.. И как Вы понимаете заместь Array[name] должно быть полное имя файла с форматом. Помогите
there are no limits when you're software engineer

Последний раз редактировалось spein; 01.04.2009 в 19:31. Причина: ошибка
spein вне форума Ответить с цитированием
Старый 01.04.2009, 19:38   #2
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

Попробовал добавить переменную
Код:
$fname = $_FILES['filename']['name'];
Вставил в запрос и получилось
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 02.04.2009, 18:18   #3
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

ПО ЭТОЙ ЖЕ ТЕМЕ!!!
как сделать так что файлу давалось рандомное числовое имя и оно же забивалось в БД
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 02.04.2009, 21:43   #4
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Предупреждаю сразу: решение корявое
PHP код:
/*строку с именем файла разбиваю на части по знаку "." и 
записываю в массив*/
$forExt explode("."$_FILES['file_upload']['name']); 
/*беру последний элемент массива - это и должно быть 
расширение файла*/
$ext array_pop($forExt);
/*тут делаю имя файла из текущего времени. Оно не рандомное, 
но вряд ли будут повторения*/ 
$fname time().".".$ext
ну а fname уже заносите в БД
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 03.04.2009, 11:59   #5
Metandrostenalon
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 108
По умолчанию

Цитата:
Сообщение от spein Посмотреть сообщение
ПО ЭТОЙ ЖЕ ТЕМЕ!!!
как сделать так что файлу давалось рандомное числовое имя и оно же забивалось в БД
Код:
function randNumber($count = 8) {
  $numb_array = '1234567890';
  $string = '';
	
  for($i = 1; $i <= $count; $i++) {
    $string .= $numb_array[rand(0, 9)];
  }
  return $string;
}
// формируем новое имя и присоединяем расширение
$name = randNumber(10) .'.'. $ext;
// далее $name вставляем в базу
php,javascript
Metandrostenalon вне форума Ответить с цитированием
Старый 03.04.2009, 12:12   #6
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

По-моему легче так:
PHP код:
rand(1000000099999999); 
А вобще-то есть функция uniqid которая возвращает уникальное число в зависимости от времени (с точностью до мс):
PHP код:
 echo uniqid("0",False); 
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 03.04.2009, 16:19   #7
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

проблема в том что я не могу соблюсти формат.
Рандомное имя я могу и при помощи базы по ид давать. Мне самое главное чтоб рандомное значение было уникальное и забивалось в базу вместе с форматом изображения, а изображение было типа 1.jpg,2.jpg и так далее. Вот только формат изображения должен соответствовать тому который мы грузим. Вот в чем собственно надо помощ!
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 03.04.2009, 16:25   #8
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Пожалуй, повторюсь:
А вобще-то есть функция uniqid которая возвращает уникальное число в зависимости от времени (с точностью до мс):
Код:
uniqid("0",False);
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 03.04.2009, 16:39   #9
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

Вы не ответили на вопрос "как сделать рандомное имя, а формат сохранить"
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 03.04.2009, 19:20   #10
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Ну я, кажется, писала, как расширение сохранить.
Или я просто не понимаю постановку вопроса...
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как задать команду загрузки файлов данных на кнопку если каталог и имена файлов известны??? Andbuba Microsoft Office Excel 2 28.12.2008 17:28
Клиент загрузки файлов на Народ.ру Asteroid Работа с сетью в Delphi 3 26.12.2008 19:23
Вставка полосы загрузки Khabibula Microsoft Office Access 2 28.10.2008 12:49
отслеживание загрузки программы ГОСЕАН Общие вопросы Delphi 4 13.12.2007 18:04