[英]unable upload big files to server using php
I can't load big files to server. 我无法将大文件加载到服务器。 The problem is in that file $_FILES["filename"]["tmp_name"]
is empty if file a little more bigger then 2mb. 问题在于,如果文件大小大于2mb,则文件$_FILES["filename"]["tmp_name"]
为空。 I tried to change variables in php.ini 我试图更改php.ini中的变量
upload_max_filesize = 700M
post_max_size = 16M
but not working to. 但没有工作。 Also tried to add this variables to my .httaccess file - but 500 error appears. 还尝试将此变量添加到我的.httaccess文件中-但出现500错误。
Error code while uploading=1.
UPLOAD_ERR_INI_SIZE
Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.
Here is my uppload.php page, please anwer what I doing wrong? 这是我的uppload.php页面,请回答我做错了什么? Thanx! 谢谢!
<?php
if(strlen($_FILES["filename"]["name"]))
{
$folder = "uploads/";
echo $folder;
$error = "";
if($_FILES["filename"]["size"] > 1024*700*1024)
{
$error .= "<b><p class=ErrorMessage>Размер файла превышает 5Mb</p></b><br>";
header("Location: upload.php?error=".$error, true, 303 );
}
if(!file_exists($folder.="hh/"))
{
if(!mkdir($folder, 0700))
$error .= "<b><p class=ErrorMessage>Folder not created</p></b><br>";
}
//echo "<br>".$_FILES["filename"]["tmp_name"]."<br>";
echo $folder.$_FILES["filename"]["name"]."<br>";
echo $_FILES["filename"]["error"]."<br>";
if(move_uploaded_file($_FILES["filename"]["tmp_name"], $folder.$_FILES["filename"]["name"]))
{
echo("Файл успешно загружен <br>");
echo("Характеристики файла: <br>");
echo("Имя файла: ");
echo($_FILES["filename"]["name"]);
echo("<br>Размер файла: ");
echo($_FILES["filename"]["size"]);
echo("<br>Каталог для загрузки: ");
echo($folder.=$_FILES["filename"]["name"]);
echo("<br>Тип файла: ");
echo($_FILES["filename"]["type"]);
}
else
{
$error .= "<b><p class=ErrorMessage>Ошибка загрузки файла</p></b><br>";
}
}
?>
<!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>
</head>
<body>
<?php
if(isset($_REQUEST["error"]))
{
echo $_REQUEST["error"];
}
?>
<h2><p><b> Форма для загрузки файлов </b></p></h2>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="filename" READONLY><br>
<input name="Upload" type="submit" value="Upload"><br>
</form>
</body>
</html>
check your php setting using phpinfo.php, if you have the right configuration. 如果配置正确,请使用phpinfo.php检查您的php设置。 Then you will know exactly what to do. 然后,您将确切知道该怎么办。
And one more thing make sure the /tmp directory is writable for the current user. 还有一件事情要确保/ tmp目录对于当前用户是可写的。
Maybe your php.ini is ignored. 也许您的php.ini被忽略了。 Try calling this from PHP. 尝试从PHP调用它。
ini_set('upload_max_filesize', '700M');
ini_set('post_max_size', '16M');
Or via .htaccess 或通过.htaccess
php_value upload_max_filesize 700M
php_value post_max_size 16M
try increasing these values in php.ini 尝试在php.ini中增加这些值
memory_limit = 99M memory_limit = 99M
max_execution_time = 300 max_execution_time = 300
upload_max_filesize = 20M upload_max_filesize = 20M
post_max_size = 24M post_max_size = 24M
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.