Почему этот скрипт не работает с mp4s, mpegs (и, возможно, с любыми / large / файлами)? - PullRequest
0 голосов
/ 15 октября 2010
<?php
if($_POST['uae']){
 move_uploaded_file($_FILES["file"]["tmp_name"], FS_DOC_ROOT . 'uploads/' . urlencode($_FILES['file']["name"]));
 mail("email@address","Uploaded File for you",$_POST['message']."\n\nTo view the file please follow the following link: ".HTTP_SERVER."uploads/".urlencode($_FILES['file']['name']).".","FROM: DONOTREPLY <do-not-reply@website.com>");
 echo "<div style='background: green;color: #ffffff;padding: 5px;'>All sent... send another one below.</div>";
}
?>

<form method="post" action="uploadandemail.html" enctype="multipart/form-data">

 <table>
     <tr>
         <td>Choose a file to upload:</td>
            <td><input type="file" name="file" /></td>
        </tr>
        <tr>
         <td valign="top">Message:</td>
            <td><textarea name="message" cols="40" rows="40" style="height: 150px;">I have uploaded a file for you.</textarea><br />This will be superceeded with "To view the file please follow the following link: http://linktoyour.new/file.doc".</td>
        </tr>
        <tr>
         <td></td>
            <td><input type="submit" name="uae" value="Upload and Email" /></td>
        </tr>
    </table>

</form>

Он не работает - он с удовольствием загрузит маленькое изображение или PDF, но не загрузит mp4 или mpeg.Это даже не пробует, страница просто обновляется сразу.

Есть идеи?php.ini настроен на максимальную загрузку 100M.

Это мой файл php5.ini:

error_reporting  =  E_ALL
upload_max_filesize = 100M

Спасибо

Ответы [ 2 ]

1 голос
/ 15 октября 2010

мои настройки ini

memory_limit: 1G
post_max_size: 400M
upload_max_filesize: 100M

max_execution_time: 450

(тест) Размер файла: ~ 31 МБ

$_FILES dump

Array
(
    [userfile] => Array
        (
            [name] => Adium.app.zip
            [type] => application/zip
            [tmp_name] => /private/tmp/phpuuG0VK
            [error] => 0
            [size] => 33300224
        )

)
1 голос
/ 15 октября 2010

Должно быть значение по умолчанию в MAX_FILE_SIZE, которое слишком мало для большого файла. Хотя MAX_FILE_SIZE может быть одурачен, как указывает сайт php.net, это удобно, так как пользователь не ждет долгой загрузки только для того, чтобы найти файл слишком большой из-за настройки php.ini

От: http://www.php.net/manual/en/features.file-upload.post-method.php

MAX_FILE_SIZE скрытое поле (измеряется в байтах) должен предшествовать поле ввода файла, и его значение является максимальный размер файла, принятый PHP. это элемент формы всегда должен использоваться как это избавляет пользователей от необходимости ждать только для большого файла чтобы найти, что это было слишком большим и передача не удалась. Имейте в виду: дурачиться эта настройка на стороне браузера довольно просто, поэтому никогда не полагайтесь на файлы с большим размером блокируется эта особенность. Это просто удобная функция для пользователей на клиентская часть приложения. Настройки PHP (на стороне сервера) для максимальный размер, однако, не может быть одурачить.

...