За последние 24 часа нас посетили 34819 программистов и 1752 робота. Сейчас ищут 875 программистов ...

Работает на локале, но не работает на хосте

Тема в разделе "PHP для новичков", создана пользователем Basters, 7 дек 2010.

  1. Basters

    Basters Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Ростов на Дону
    Проблема такова, скрипт отлично работает на локале, просто на ура. Суть скрипта - массовая загрузка изображений.
    PHP:
    1. <?
    2.  foreach($_FILES as $key => $value)
    3.                 {
    4.                     echo "<pre>";
    5.                     print_r($_FILES);
    6.                     echo "</pre>";
    7.                      $shag++;
    8.                      $imageinfo = getimagesize($_FILES[$key]['tmp_name']);
    9.  
    10.                      if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg') {
    11.                       echo "Sorry, we only accept GIF and JPEG images\n";
    12.  
    13.                      }
    14.  
    15.                      if ($shag==1)
    16.                      {
    17.                          $img_name_clean = $_FILES[$key]['name'];
    18.                          $img_name_clean = str_replace (".img","",$img_name_clean);
    19.                          $img_name_clean = str_replace (".jpeg","",$img_name_clean);
    20.                          $img_name_clean = str_replace (".jpg","",$img_name_clean);
    21.                          $img_name_clean = str_replace (".gif","",$img_name_clean);
    22.                          $img_name_clean = str_replace (".JPG","",$img_name_clean);
    23.                          $img_name_clean = str_replace (".IMG","",$img_name_clean);
    24.                          $img_name_clean = str_replace (".GIF","",$img_name_clean);
    25.                          $img_name_clean = str_replace (".JPEG","",$img_name_clean);
    26.                          if(!file_exists("../foto/".$img_name_clean."/")){mkdir("../foto/".$img_name_clean."/", 0777);  chmod('../foto/'.$img_name_clean, 0777);}
    27.                      }
    28.                      $uploaddir = '../foto/'.$img_name_clean.'/';
    29.                      $uploadfile = $uploaddir . basename($_FILES[$key]['name']);
    30.                      $img_name = $_FILES[$key]['name'];
    31.                      echo $key;
    32.                      if (file_exists("../foto/".$img_name_clean."/".$img_name."")){echo "Внимание! Ошибка, в папке ".$img_name_clean." уже существует файл ".$img_name."! Пожалуста, переименуте загружаемый файл."; exit;}
    33.                      if (move_uploaded_file($_FILES[$key]['tmp_name'], $uploadfile)) {
    34.                      chmod('../foto/'.$img_name_clean.'/' . $img_name, 0666);
    35.                        echo "Файл ".$_FILES[$key]['name']." загружен в папку ".$img_name_clean.".\n<br>";
    36.                      } else {
    37.                        echo "Файл ".$_FILES[$key]['name']." не загружен в папку ".$img_name_clean.".\n<br>";exit;
    38.                      }
    39.  
    40.                 }
    41. ?>
    на хосте:
    первый файл загружает, а остальные выплевывает, говорит что не соответствуют условию
    if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg') {
    echo "Sorry, we only accept GIF and JPEG images\n";

    }
    и не грузит... как порпавить?

    на denwerе все идеально летает
     
  2. Basters

    Basters Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Ростов на Дону
    извините, не тот раздел
     
  3. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Может на хостинге PHP < 4.3.0 ...?
     
  4. Mamont

    Mamont Активный пользователь

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
  5. Basters

    Basters Активный пользователь

    С нами с:
    2 янв 2008
    Сообщения:
    30
    Симпатии:
    0
    Адрес:
    Ростов на Дону
    ну начнем с того, что это полностью рабочий скрипт, что вас здесь смутило?



    Проблема решилась, в JS который штамповал импуты типа файл, в передачи новому импуту были две кавычки, в которые сервер вставлял слешь и бил $_FILES вместо 2х массивов - на 3... короче проблема решена, можно закрывать
     
  6. Mamont

    Mamont Активный пользователь

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    <input name="userfile[]" type="file" /> - N штук
    и при обработке
    $_FILES['userfile']['name'][0]
    $_FILES['userfile']['name'][1]
    ...
    $_FILES['userfile']['name'][N]

    Имхо, так проще. Настолько привык, что забыл что имя поля может быть уникальным и не на то грешил ((

    ЗЫ проверяй ошибки еще
    foreach($_FILES as $key => $value)
    {
    if( $value['error'] !=0 ){
    echo "Ошибка при загрузке файла: ".$value['name'];
    continue;
    }