Каталог фотографий

Тема в разделе "PHP", создана пользователем csmonitoring, 7 июл 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. csmonitoring

    csmonitoring Создатель

    Регистр.:
    26 июн 2008
    Сообщения:
    33
    Симпатии:
    0
    Здравствуйте, нужна "помощь" в создании каталога фотографий...
    Ситуация такая, пользователь видит форму
    HTML:
    <form id="form1" name="form1" method="post" action="">
    с обьектами
    HTML:
    <input name="dir_name" type="text" id="dir_name" value="0000-000-0000" />
    и
    HTML:
    <input type="submit" name="button" id="button" value="Загрузить фотографию" />
    Нужно заставить скрипт создавать каталог с именем указавшим пользователем в "текстовом поле"
    PHP:
    mkdir($dir_name,0755)
    и при всем этом дать пользователю возможность через веб-форму загружать файлы *.jpg, *.jpeg, *.bmp и тд. (одновременно от 1 и до 25)

    Форму создал, а вот как заставить кнопку выполнить мои действия не представляю :(
     
  2. ПроФ

    ПроФ Создатель

    Регистр.:
    5 июн 2009
    Сообщения:
    25
    Симпатии:
    6
    csmonitoring нравится это.
  3. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.065
    Симпатии:
    197
    смотрим в сторону php или любого другого вэб языка программирования
     
  4. kud

    kud Постоялец

    Регистр.:
    18 фев 2009
    Сообщения:
    89
    Симпатии:
    11
    У Вас не указан в форме enctype, допишите в теге форм аттрибут:
    HTML:
    
    enctype="multipart/form-data"
    
    Если он не будет указан, Вы не сможете загружать файлы ...

    Что-бы добавить несколько файлов, Вам нужно использовать javascript:
    HTML:
    
    <script type="text/javascript">
    function create_element(element_name,append_to,attributes) {
    	var El=document.createElement(element_name);
    	if (typeof(attributes)=="object") {
    		for (i=0;i<attributes.length;i++) {
    			xxx=attributes[i].split("=");
    			attributName=xxx[0];
    			attributVal=xxx[1];
    			El.setAttribute(attributName,attributVal);
    		}
    	}
    	myElement=append_to.appendChild(El);
    	return myElement;
    }
    
    function add_pic_input() {
    	myContainer = document.getElementById('pictures');
    	create_element('br',myContainer);
    	create_element('input',myContainer,["type=file", "name=new_pic[]","size=70"]);
    	}
    </script>
    
    Этот код вставляете после тега body

    Дальше, в форме делаете следующее:
    1) Добавляете div с id = pictures
    HTML:
    <div id='pictures'></div>
    и добавляете кнопку:
    HTML:
    <input type=button name='addPic' onclick='add_pic_input()' value='добавить фото'>
    Ну, а обработчик формы:
    PHP:
    <?php 
    if (isset($_POST['button'])) {
        
    // вообще это отфильтровать нужно, но да ладно )
        
    $dir_name "./" $_POST['dir_name'];
        
    mkdir($dir_name,0755);
        
    $num_pics count($_FILES['new_pic']['tmp_name']);
        for (
    $i 0$i $num_pics$i++) {
            
    // вобще тут и тип файла желатеьно бы проверит, но да ладно )
            
    if ($_FILES['new_pic']['size'][$i]!=0) {
                
    // копируем файл на сервер
                
    if (!move_uploaded_file($_FILES['new_pic']['tmp_name'][$i],$dir_name '/' $_FILES['new_pic']['name'][$i])) echo $_FILES['new_pic']['name'][$i] . " - не загружена <br>"
            }
        
        }
        
    // перенапрявляем на нужную страницу
        
    header("Location: /");

    }
    ?>
    Сохраните этот файл как, например handler.php и в форме в атрибуте action укажите путь к нему (сейчас он в корне сайта:(
    HTML:
    action="/handler.php"
    Но я Вам не рекомендую использовать этот код .. Он всего лишь наглядно показывает как загружать файлы на сервер, доработайте его на проверки вводимых данных и все такое ...
     
    csmonitoring и DCRM нравится это.
Статус темы:
Закрыта.