1

Тема: Аплоадер

Доброй ночи, уважаемые форумчане!

Замыслил я дело доброе - осуществить возможность закачки музыки пользователями, дабы они могли послушать то, что им нравиться в прямом эфире.

Вот только беда - не имею ни малейшего понятия, как это сделать.

Добрый Google подсказал такое решение проблемы. Нужно создать 2 файла.

index.php:

<?php require_once("maxUpload.class.php"); ?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>Загрузка торрент-файлов!</title>
   <link href="style/style.css" rel="stylesheet" type="text/css" />
</head>
 
<body>
<?php
    $myUpload = new maxUpload(); 
    //$myUpload->setUploadLocation(getcwd().DIRECTORY_SEPARATOR);
    $myUpload->uploadFile();
?>
</body>   

maxUpload.class.php:

<?php
/*************************************************
 * Max's File Uploader
 *
 * Version: 1.0
 * Date: 2007-11-26
 *
 ****************************************************/
class maxUpload{
    var $uploadLocation;
    
    /**
     * Constructor to initialize class varaibles
     * The uploadLocation will be set to the actual 
     * working directory
     *
     * @return maxUpload
     */
    function maxUpload(){
        $this->uploadLocation = getcwd().DIRECTORY_SEPARATOR;
    }
 
    /**
     * This function sets the directory where to upload the file
     * In case of Windows server use the form: c:\\temp\\
     * In case of Unix server use the form: /tmp/
     *
     * @param String Directory where to store the files
     */
    function setUploadLocation($dir){
        $this->uploadLocation = $dir;
    }
    
    function showUploadForm($msg='',$error=''){
?>
       <div id="container">
            <div id="header"><div id="header_left"></div>
            <div id="header_main">Загрузка торрент-файлов!</div><div id="header_right"></div></div>
            <div id="content">
<?php
if ($msg != ''){
    echo '<p class="msg">'.$msg.'</p>';
} else if ($error != ''){
    echo '<p class="emsg">'.$error.'</p>';
 
}
?>
                <form action="" method="post" enctype="multipart/form-data" >
                     <center>
                         <label>File:
                             <input name="myfile" type="file" size="30" />
                         </label>
                         <label>
                             <input type="submit" name="submitBtn" class="sbtn" value="Upload" />
                         </label>
                     </center>
                 </form>
             </div>
             <div id="footer"><a href="http://www.phpf1.com" target="_blank">Powered by PHP F1</a></div>
         </div>
<?php
    }
 
    function uploadFile(){
        if (!isset($_POST['submitBtn'])){
            $this->showUploadForm();
        } else {
            $msg = '';
            $error = '';
            
            //Check destination directory
            if (!file_exists($this->uploadLocation)){
                $error = "The target directory doesn't exists!";
            } else if (!is_writeable($this->uploadLocation)) {
                $error = "The target directory is not writeable!";
            } else {
                $target_path = $this->uploadLocation . basename( $_FILES['myfile']['name']);
 
                if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) {
                    $msg = basename( $_FILES['myfile']['name']).
                    " - успешно загружен!";
                } else{
                    $error = "Не удалось загрузить файл!";
                }
            }
 
            $this->showUploadForm($msg,$error);
        }
 
    }
 
}
?>

Но сколь я не бился над этими файлами - результата никакого.

Прошу, помогите! Может вы знаете решение?

Если что - у меня есть ftp сервер. Может через него возможно реализовать закачку? Важно, это обязательно должна быть веб-ворма. Мы же не хотим утомлять пользователей разными программами?

2

Re: Аплоадер

Упс, я прошу прощения! Код рабочий! Проблема была в том, что я неправильно выставил кодировку обоих файлов. Она должна быть в utf-8

Однако заливать можно только маленькие файлы. Где я могу увеличить ограничение?

Отредактировано MisTERR (12-11-2012 05:09:09)

3

Re: Аплоадер

Это уже не смешно. Здесь форум об интернет-вещании, а не о php! Хватит спрашивать не по теме самого форума, для этого есть другие тематические места...

ЗЫ Размер файла, который можно загрузить, выставляется в php.ini либо в .htaccess

4

Re: Аплоадер

Хорошо, если это нарушает правила форума, я прошу модератора удалить тему.

5

Re: Аплоадер

Это не запрещено правилами, но и помогать никто не будет...

6

Re: Аплоадер

Чтож, даю решение.

Необходимо в файле php.ini изменить ограничения

post_max_size = хххМ 

upload_max_filesize = хххМ 

на число мегабайт, которое будет максимальным весом передаваемого файла.


Для того чтобы файл заливался в нужную вам папку (или например на другой диск), необходимо раскомментировать файл

$myUpload->setUploadLocation(getcwd().DIRECTORY_SEPARATOR);

и заменить его на

$myUpload->setUploadLocation('D://папка с музыкой/новинки/');

Спасибо за внимание. Если тему перенесут в уроки, я буду очень рад.

7

Re: Аплоадер

У нас форум не по php урокам, вы изначально не туда обратились

В здоровом теле - здоровый дух!