За последние 24 часа нас посетили 19293 программиста и 1615 роботов. Сейчас ищут 1002 программиста ...

Помогите со скриптом

Тема в разделе "PHP для новичков", создана пользователем andrey_94, 21 май 2009.

  1. andrey_94

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

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    Собственно сабж.
    Я написал скрипт, который сразу через закачку изображения будет создана его миниатюра.

    Вот коды:
    HTML:
    1.  
    2. <form enctype="multipart/form-data" action="upload.php" method="post">
    3.  <input type="hidden" name="MAX_FILE_SIZE" value="90000" />
    4.  Отправить этот файл: <input name="userfile" type="file" /><br /><br />
    5.  Название фото:<input name="title" type="text" />
    6.  <input type="submit" value="Send File" />
    7. </form>
    8.  
    PHP:
    1. <?php
    2.  
    3. if (isset($_POST['title'])) {$title = $_POST['title']; }
    4.  
    5. $uploaddir = 'uploads1/';
    6. $date = date("d-m-Y");
    7. $uploadfile = $uploaddir .$date .'-' . basename($_FILES['userfile']['name']);
    8.  
    9.  
    10.  
    11. print "<pre>";
    12. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
    13. {
    14.     print "File is valid, and was successfully uploaded. ";
    15.     print "Here's some more debugging info:\n";
    16.     print_r($_FILES);
    17.  
    18.  
    19.  
    20. list($width, $height) = getimagesize($uploadfile);
    21. $new_width = 160;
    22. $new_height = 160;
    23.  
    24.  
    25. $image_p = imagecreatetruecolor($new_width, $new_height);
    26. $image = imagecreatefromjpeg($uploadfile);
    27. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    28.  
    29.  
    30. imagejpeg($image_p, null, 100);
    31.    
    32.    
    33.    
    34.    
    35.    
    36.    
    37.    
    38.    $connect = mysql_connect ("localhost","andrey","andrey");
    39.    mysql_select_db ("test",$connect);
    40.    mysql_query("INSERT INTO foto (url, text) VALUES ('$uploadfile','$title')");
    41.    
    42. } else {
    43.     print "Possible file upload attack!  Here's some debugging info:\n";
    44.     print "Possible file upload attack!  Дополнительная отладочная информация:\n";
    45.     print_r($_FILES);
    46. }
    47. print "</pre>";
    48.  
    49. ?>
    Вопрос таков вот эта часть скрипта

    PHP:
    1. list($width, $height) = getimagesize($uploadfile);
    2. $new_width = 160;
    3. $new_height = 160;
    4.  
    5.  
    6. $image_p = imagecreatetruecolor($new_width, $new_height);
    7. $image = imagecreatefromjpeg($uploadfile);
    8. imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    9.  
    10.  
    11. imagejpeg($image_p, null, 100);
    требует такого кода
    PHP:
    1. header('Content-type: image/jpeg');
    этот код нужно прописывать перед началом работы всего скрипта, а так как первое действие у меня загрузка изображений, она не срабатывает, скажите как можно избавится от данной проблемы?
     
  2. Cron

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

    С нами с:
    10 июл 2008
    Сообщения:
    289
    Симпатии:
    0
    Адрес:
    Украина, Сумы
    Вот эта часть скрипта вернет в браузер картинку. Следовательно оно должен быть расположено в отдельном файле и на страничку может быть вставлено как img src="путь_к_вашему_скрипту". Поэтому сделайте с помощью ajax отправку запроса на файл, который обрабатывает закачанный и при получении ответа формирует картинку с указанным видом src.
     
  3. andrey_94

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

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    а можете привести пример, а то я не силен в Аяксе
     
  4. Greg1978

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

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    Этот код надо прописать непосредственно перед выводом картинки в браузер.
    Следовательно весь код (код вывода фото) превьюшки вынести в самый низ, после того как проделать все! операции над ним.
    Желательно превьюшку рядом записать с оригиналом.
     
  5. andrey_94

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

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    Можете написать пример?
     
  6. Nik-Pik

    Nik-Pik Активный пользователь

    С нами с:
    21 мар 2009
    Сообщения:
    98
    Симпатии:
    0
    с трудом верится...
     
  7. Cron

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

    С нами с:
    10 июл 2008
    Сообщения:
    289
    Симпатии:
    0
    Адрес:
    Украина, Сумы
    Nik-Pik
    почему же. часть его вполне стандартна и очень похожа на код из хабровской статьи про безопасную загрузку изображений.
     
  8. andrey_94

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

    С нами с:
    17 май 2009
    Сообщения:
    40
    Симпатии:
    0
    В общем, проблема была в том что нужно было убрать функцию print, всем спасибо!!! :wink: