Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Как обойти максимальный размер файла.


Автор: Druidik25 21.2.2006, 11:48
Извиняюсь, мож повторюсь... У емня проблема с загрузкой файлов...
Вот суть проблемы:
Скрипт загружает на сервак файлы при помощи move_uploaded_file .

У настройках скрипта стоит строчка:
Код

<input type="hidden" name="MAX_FILE_SIZE" value="20000000">


Спрашивал у прова, стоит ограничение на эту же весч до 2 мег. Как это можно обойти? Нужно получить ддо 10мег, хотябы...

Два метра заливааются - на ура, больше - нет... Мож както разбивать, мож качать на сервак другим методом. Огромное спасибо за внимание...

Автор: smartov 21.2.2006, 15:56
Функция move_uploaded_file не загружает файлы. Она перемещает загруженный куда тебе надо.
Файлы upload-ит браузер, их принимает сервер.
Если у прова ограничение то похоже что тебе ничего не поможет.

Автор: Druidik25 26.8.2006, 23:05
До сих пор воюю с этим. Поменял прова. Есть сервак линуховый. Мною настроеный. Переменные - огого. И пофик. Воз и нынче там....

Добавлено @ 23:09 
Варианты:
Код

<?php
/************************************************************************/
/*                        */
/* Copyright (c) 2006 Druidik                */
/*                     */
/*                        */
/************************************************************************/
include("11111");
include("22222");
session_name("MyName");
session_start();
//проверки
if(isset($delete)){
    mysql_query("delete from kot_files WHERE unid=".$delete);
}
if(isset($add)){
    for($i=0;$i<=9;$i++){
    $filenm = "ifilename".$i ;
    if($_FILES[$filenm]['size'] != 0){
        $fileName = $_FILES[$filenm]['name'];
        $tmpName = $_FILES[$filenm]['tmp_name'];
        $filesize = $_FILES[$filenm]['size'];
        $fileType = $_FILES[$filenm]['type'];
        echo $_FILES[$filenm]['error'];
        $zaprfolder1=mysql_query("SELECT * FROM kot_folders WHERE id=".$new_folders);
        $rezfolder1=mysql_fetch_object($zaprfolder1);

        echo $fileName."::::".$tmpName;
        //$fp = fopen($tmpName, 'r');

        $host = "some_ip";
        $connect = ftp_connect($host,21,400);
        if(!$connect)
        {
            echo("Ошибка соединения");
            exit;
        }
        else
        {
            echo("Соединение установлено");  
        }
        $user = "abrakadabra";
        $password = "my pass";
        $result = ftp_login($connect, $user, $password);
        if(ftp_put($connect, "/papka/".$fileName, $tmpName, FTP_BINARY)) 
        { 
            echo "Successfully uploaded $filename\n"; 
        }else{
            echo "There was a problem while uploading $file\n";
        }
        ftp_close($connect);

    }
    }
    
}
$tempzapr=mysql_query("SELECT kot_files.*, kot_files.unid as idd, SUM(filesize) as filesize, kot_folders.name as foldername, kot_folders.id, kot_projects.id, kot_projects.name as projname, kot_users.id, kot_users.name as usernamess FROM kot_files, kot_folders, kot_projects, kot_users WHERE (kot_folders.id=kot_files.folderid)AND(kot_projects.id=kot_files.projectid)AND(kot_files.userto=kot_users.id) GROUP BY kot_files.unid");
?>
<table width=400 border=1><tr><td colspan=5>Список файлов:</td></tr>
<tr><td>Файл(размер)</td><td>Проэкт</td><td>папка</td><td>Пользователь</td><td>Параметры</td></tr>
<?
while($temprez=mysql_fetch_object($tempzapr))
{
echo "<tr><td><a href=file.php?unid=".$temprez->idd.">".$temprez->name."(".$temprez->filesize.")</a></td>";
echo "<td>$temprez->projname</td><td>$temprez->foldername</td><td>$temprez->usernamess</td>";
if($temprez->userid=$userid){
echo "<td><a href=addfile.php?delete=".$temprez->idd.">Удалить</a></td></tr>";
}else{echo "<td>Не вы выкладывали этот файл</td></tr>";}
}
?>
</tr><td colspan=5><a href=indexmenu.php>Вернуться</a></td></tr>
</table>
<form method="post" enctype="multipart/form-data">
<table width="500" border="1" cellpadding="1" cellspacing="1">
<tr valign=center>
<td width="290">
<input type="hidden" name="MAX_FILE_SIZE" value="20000000">
Файл №0:<input type="file" name="ifilename0" id="ifilename0"><br>
Файл №1:<input type="file" name="ifilename1" id="ifilename1"><br>
Файл №2:<input type="file" name="ifilename2" id="ifilename2"><br>
Файл №3:<input type="file" name="ifilename3" id="ifilename3"><br>
Файл №4:<input type="file" name="ifilename4" id="ifilename4"><br>
Файл №5:<input type="file" name="ifilename5" id="ifilename5"><br>
Файл №6:<input type="file" name="ifilename6" id="ifilename6"><br>
Файл №7:<input type="file" name="ifilename7" id="ifilename7"><br>
Файл №8:<input type="file" name="ifilename8" id="ifilename8"><br>
Файл №9:<input type="file" name="ifilename9" id="ifilename9"></td>
<td width="80" align=center><input name="add" type="submit" value="add"></td>
</tr>
<tr>
    <td>Выберите проект - куда...</td>
    <td>
        <select name="new_projects">
<?
$zaprproj=mysql_query("SELECT * FROM kot_projects");
$i=0;
while($rezproj=mysql_fetch_object($zaprproj)){
$i++;
echo "<option value=".$rezproj->id; if($projects==$i) echo " selected";echo ">".$rezproj->name;
}
?>
        </select>
    </td>
</tr>
<tr>
    <td>Выберите папку куда бум ложить файлы...</td>
    <td>
        <select name="new_folders">
<?
$zaprfolder=mysql_query("SELECT * FROM kot_folders");
$i=0;
while($rezfolder=mysql_fetch_object($zaprfolder)){
$i++;
echo "<option value=".$rezfolder->id; if($folders==$i) echo " selected";echo ">".$rezfolder->name;
}
?>
        </select>
    </td>
</tr>
<tr>
    <td>Выберите пользователя - кому...</td>
    <td>
        <select name="new_users">
<?
$zapruser=mysql_query("SELECT * FROM kot_users WHERE level='UserAdvanced'");
$i=0;
while($rezuser=mysql_fetch_object($zapruser)){
$i++;
echo "<option value=".$rezuser->id; if($users==$i) echo " selected";echo ">".$rezuser->name;
}
?>
        </select>
    </td>
</tr>
</table>
</form>
<?
include("333333");
?>


Добавлено @ 23:15 
Код

<?php
/************************************************************************/
/*                        */
/* Copyright (c) 2006 Druidik                */
/*                    */
/*                        */
/************************************************************************/
include("11111111111");
include("2222222222");
session_name("MyName");
session_start();
//Proverki
if(isset($delete)){
    mysql_query("delete from kot_files WHERE unid=".$delete);
}
if(isset($add)){
    for($i=0;$i<=9;$i++){
    $filenm = "ifilename".$i ;
    if($_FILES[$filenm]['size'] != 0){
        $fileName = $_FILES[$filenm]['name'];
        $tmpName = $_FILES[$filenm]['tmp_name'];
        $filesize = $_FILES[$filenm]['size'];
        $fileType = $_FILES[$filenm]['type'];
        echo $_FILES[$filenm]['error'];
        $zaprfolder1=mysql_query("SELECT * FROM kot_folders WHERE id=".$new_folders);
        $rezfolder1=mysql_fetch_object($zaprfolder1);

        $fp = fopen($tmpName, 'r');
        $size=filesize($tmpName);
        $sizepart=$size;
        $part=0;
        $fileName = addslashes($fileName);
        $fileType=addslashes($fileType);
        $cont="";
        while($size>0){
            if($size>300000){
                $cont = $cont . fread($fp, 300000);
                $size = $size - 300000;
            }else{
                $cont = $cont . fread($fp, $size);
                $size = 0;
            }
            $content=addslashes($cont);
            $query = "INSERT INTO kot_files (name, filesize, filetype, userid, projectid, folderid, userto,  filedata, part) ".
            "VALUES ('$fileName', '$sizepart', '$fileType', '$iuserid', '$new_projects', '$new_folders' , '$new_users' , '$content', '$part')";
            mysql_query($query);
            echo mysql_error();
        }
        fclose($fp);
//or die('Error, query failed');
    }
    }
}
$tempzapr=mysql_query("SELECT kot_files.*, kot_files.unid as idd, SUM(filesize) as filesize, kot_folders.name as foldername, kot_folders.id, kot_projects.id, kot_projects.name as projname, kot_users.id, kot_users.name as usernamess FROM kot_files, kot_folders, kot_projects, kot_users WHERE (kot_folders.id=kot_files.folderid)AND(kot_projects.id=kot_files.projectid)AND(kot_files.userto=kot_users.id) GROUP BY kot_files.unid");
?>
<table width=400 border=1><tr><td colspan=5>Список файлов:</td></tr>
<tr><td>Файл(размер)</td><td>Проэкт</td><td>папка</td><td>Пользователь</td><td>Параметры</td></tr>
<?
while($temprez=mysql_fetch_object($tempzapr))
{
echo "<tr><td><a href=file.php?unid=".$temprez->idd.">".$temprez->name."(".$temprez->filesize.")</a></td>";
echo "<td>$temprez->projname</td><td>$temprez->foldername</td><td>$temprez->usernamess</td>";
if($temprez->userid=$userid){
echo "<td><a href=addfile.php?delete=".$temprez->idd.">Удалить</a></td></tr>";
}else{echo "<td>Не вы выкладывали этот файл</td></tr>";}
}
?>
</tr><td colspan=5><a href=indexmenu.php>Вернуться</a></td></tr>
</table>
<form method="post" enctype="multipart/form-data">
<table width="500" border="1" cellpadding="1" cellspacing="1">
<tr valign=center>
<td width="290">
<input type="hidden" name="MAX_FILE_SIZE" value="20000000">
Файл №0:<input type="file" name="ifilename0" id="ifilename0"><br>
Файл №1:<input type="file" name="ifilename1" id="ifilename1"><br>
Файл №2:<input type="file" name="ifilename2" id="ifilename2"><br>
Файл №3:<input type="file" name="ifilename3" id="ifilename3"><br>
Файл №4:<input type="file" name="ifilename4" id="ifilename4"><br>
Файл №5:<input type="file" name="ifilename5" id="ifilename5"><br>
Файл №6:<input type="file" name="ifilename6" id="ifilename6"><br>
Файл №7:<input type="file" name="ifilename7" id="ifilename7"><br>
Файл №8:<input type="file" name="ifilename8" id="ifilename8"><br>
Файл №9:<input type="file" name="ifilename9" id="ifilename9"></td>
<td width="80" align=center><input name="add" type="submit" value="add"></td>
</tr>
<tr>
    <td>Выберите проект - куда...</td>
    <td>
        <select name="new_projects">
<?
$zaprproj=mysql_query("SELECT * FROM kot_projects");
$i=0;
while($rezproj=mysql_fetch_object($zaprproj)){
$i++;
echo "<option value=".$rezproj->id; if($projects==$i) echo " selected";echo ">".$rezproj->name;
}
?>
        </select>
    </td>
</tr>
<tr>
    <td>Выберите папку куда бум ложить файлы...</td>
    <td>
        <select name="new_folders">
<?
$zaprfolder=mysql_query("SELECT * FROM kot_folders");
$i=0;
while($rezfolder=mysql_fetch_object($zaprfolder)){
$i++;
echo "<option value=".$rezfolder->id; if($folders==$i) echo " selected";echo ">".$rezfolder->name;
}
?>
        </select>
    </td>
</tr>
<tr>
    <td>Выберите пользователя - кому...</td>
    <td>
        <select name="new_users">
<?
$zapruser=mysql_query("SELECT * FROM kot_users");
$i=0;
while($rezuser=mysql_fetch_object($zapruser)){
$i++;
echo "<option value=".$rezuser->id; if($users==$i) echo " selected";echo ">".$rezuser->name;
}
?>
        </select>
    </td>
</tr>
</table>
</form>
<?
include("333333");
?>


Добавлено @ 23:17 
В таком духе.... И пофигу веники. Не больше 2 метров. Не в прове дело... Рубает по моему или настройка переноса в временные файлы експлорера... Или дето до проверки всей этой лабуды. До скрипта. точней не грузит весь файл и его потом не может скрипт забрать. Всё. Спасибо за разумные идеи.

Или мож я туплю на одном месте???

Автор: Mal Hack 26.8.2006, 23:36
СКАЗАНО же выше, что ограничение сервера, настраивается в php.ini или через htaccess.
Информация тут: http://php.net

Автор: Druidik25 27.8.2006, 14:58
Хых.
Вот мои настройки с пхп.ини 
max_execution_time = 240     ; Maximum execution time of each script, in seconds
max_input_time = 240    ; Maximum amount of time each script may spend parsing request data
memory_limit = 20M      ; Maximum amount of memory a script may consume (8MB)
post_max_size = 20M

Аллов оверриде стоит ON.
В хтаксессах ничё не меняется.

И в обчем - болт.

Автор: vasac 27.8.2006, 16:41
В upload_max_filesize

Автор: Mal Hack 27.8.2006, 23:26
Код

upload_max_filesize = 4M

Это что?
Цитата(Druidik25 @  21.2.2006,  12:48 Найти цитируемый пост)
У настройках скрипта стоит строчка:

Ну и в скрипте убрать.

Автор: Druidik25 29.8.2006, 19:44
Хм. 

Код

upload_max_filesize = 20M


Эту хоть и не показал.... Но я про то что и эта стоит большая.

Автор: Druidik25 29.8.2006, 20:14
Гыг. Не знаю что есчё наменял... Заработало... Ужас. Столько морочиться.... 

Извините,, если что. Огромное спасибо за попытки помочь.

сделал через копирование на фтп.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)