загрузка двух файлов на сервер

Тема в разделе "PHP", создана пользователем pronax, 19 май 2011.

Модераторы: latteo
  1. pronax

    pronax Постоялец

    Регистр.:
    21 сен 2008
    Сообщения:
    146
    Симпатии:
    10
    Нужно в одной форме загрузить два файла разного типа: картинку и xls
    есть стандартная форма
    PHP:
    <form  method="post" name="registration" enctype="multipart/form-data">
    <
    input type="file" name="image" style="width:150px; height:18px" class="f_input" />
    <
    input type="file" name="xls" style="width:150px; height:18px" class="f_input" />
    </
    form>
    Если грузить одну картинку, то все ок
    PHP:
        $image getimagesize($_FILES['image']['tmp_name']);
        if(
    $image['mime'] != 'image/gif' && $image['mime'] != 'image/jpeg' && $image['mime'] != 'image/png' && $image['mime'] != 'image/jpg') {
        
    $stop .= "<li>Было загружен файл не допустимого формата</li>";
        }
        if (
    $image['size'] > 100000)
        {
        
    $stop .= "<li>Размер изображения превышает допустимое значение</li>";
        }
            
    $uploaddir 'uploads/fotos/';
            
    $uploadfile $uploaddir basename($_FILES['image']['name']);
            echo 
    'uploadfile' $uploadfile '<br>';
            echo 
    'tmpname' $_FILES['image']['tmp_name'];         
            if (
    move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) {
            
    $imagepath basename($image);
            }
    Если добавить проверку для xls файла:
    PHP:
          $xls mime_content_type($_FILES['xls_upload']['tmp_name']);
        if(
    $xls['mime'] != 'application/vnd.ms-excel' && $xls['mime'] != 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
        
    $stop .= "<li>Был загружен файл не допустимого формата</li>";
        }
        if (
    $xls['size'] > 100000){
        
    $stop .= "<li>Размер прайс-листа превышает допустимое значение</li>";
        }

    $uploaddir_xls 'uploads/xls/';
            
    $uploadfile_xls $uploaddir_xls basename($_FILES['xls_upload']['name']);
            echo 
    'uploadfile' $uploadfile_xls '<br>';
            echo 
    'tmpname' $_FILES['xls_upload']['tmp_name'];         
            if (
    move_uploaded_file($_FILES['xls_upload']['tmp_name'], $uploadfile_xls)) {
            
    $xlspath basename($xls);
            }
    то на второй файл постоянно срабатыевает "Был загружен файл не допустимого формата"
    как вообще в php можно два файла разного типа сразу загрузить?
     
  2. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    А почему во второй проверке
    $xls = mime_content_type($_FILES['xls_upload']['tmp_name']);
    ведь исходя из формы отправки, если я не ошибаюсь, должно быть
    $xls = mime_content_type($_FILES['xls']['tmp_name']);
    ну и дальше по тексту также...
    А вообще почитай рекомендации по отправке нескольких файлов
    здесь
     
  3. pronax

    pronax Постоялец

    Регистр.:
    21 сен 2008
    Сообщения:
    146
    Симпатии:
    10
    блин, вот я... спасибо, изначально там было "xls_upload", вот что делает невнимательность с людьми...
    еще раз спасибо, ушел читать. А вообще если не массивом передавать данные, то такой способ как у меня можно считать правильным?

    UPD кстати нет, это я только при перепечатки сюда накосячил... а так у меня в html указан xls_upload