我有一个小的uploadscript,适用于正常大小的图像和文件。
function uploadimage($name,$dir)
{
if($name['error'] > 0){
die('An error ocurred when uploading.');
}
if(!getimagesize($name['tmp_name'])){
die('Please ensure you are uploading an image.');
}
// Check filetype
if($name['type'] != 'image/png'){
die('Unsupported filetype uploaded.');
}
// Check filesize
if($name['size'] > 500000){
die('File uploaded exceeds maximum upload size.');
}
// Check if the file exists
if(file_exists($dir. $name['name'])){
die('File with that name already exists.');
}
// Upload file
if(!move_uploaded_file($name['tmp_name'], $dir. $name['name'])){
die('Error uploading file - check destination is writeable.');
}
return $dir. $name['name'];
die('File uploaded successfully.');
}
$ name是$ _FILES ['WHATEVER']和$ dir the dir。那么现在我只是更改了几行来上传.csv文件。到现在为止还挺好。它正在使用很少的.csv文件。但是当我尝试更大的(20MB +)时,我发布时没有任何反应。我检查了我的php.ini上传upload_max_filesize和memory_limit,两者都是128M ......有人可以给我一个指针,我应该搜索bug吗?
答案 0 :(得分:3)
两个PHP配置选项控制最大上传大小: upload_max_filesize 和 post_max_size 。
但是,您还需要考虑完成上传所需的时间。 PHP脚本通常会在30秒后超时,但10MB文件在健康的宽带连接上上传至少需要3分钟(请记住,上传速度通常比下载速度慢5倍)。此外,操纵或保存上载的图像也可能导致脚本超时。因此,我们需要将PHP的 max_input_time 和 max_execution_time 设置为300(以秒为单位指定5分钟)。
可以在服务器的 php.ini 配置文件中设置这些选项,以便它们适用于所有应用程序。或者,如果您使用的是Apache,则可以在应用程序的.htaccess文件中配置设置:
答案 1 :(得分:2)
同时查看post_max_size
。
答案 2 :(得分:0)
您必须在php.ini文件中使用此设置
upload_max_filesize = 10M //20m,30m etc..
post_max_size = 10M //20m,30m etc..
没有必要提供10 MB,它将根据您的要求给出。
试试这个。
答案 3 :(得分:0)
你在php.ini中检查了post_max_size吗?
答案 4 :(得分:0)
你必须改变php.ini文件。它限制了最大上传大小。在php.ini文件中更改此内容
post_max_size = 8M
upload_max_filesize = 2M
:)
答案 5 :(得分:0)
PHP在内存中上传might take the whole request以便工作,因此上传数百个meg将需要内存限制,允许存储许多megs(以及更多)。如果您确实需要支持大文件上传,那么如果Web服务器根据请求创建临时文件,您可能会感觉更好。请查看mod_upload获取apache,或HttpUpload插件获取nginx。
答案 6 :(得分:-1)
PHP ini settings是您需要关注的内容。