2015-03-19 25 views
2

我在csv中有64 MB的数据,当有人试图在csv中获取数据时,它的打破,我想在一个简短的内容中获取所有数据,这是我的代码。Php当它是64 MB时导入大的csv打破

$filename = $_FILES['inputfile']['tmp_name']; 
$inputfilename = $_FILES['inputfile']['name']; 
if (($handle = fopen($filename, "r")) !== FALSE) { 
while (($data = fgetcsv($handle, 5000, ",")) !== FALSE) { 
$strContent[] = $data; 
} 
fclose($handle); 
} 
$_arrData = $strContent; 

我怎么能得到这个。

回答

0

也许是因为你的php.ini限制文件上传到64mb。尝试添加:

upload_max_filesize = 128M 
post_max_size = 128M 

到您的php.ini。

或改用的.htaccess(仅当您的虚拟主机/网络服务器允许):

php_value upload_max_filesize 128M 
php_value post_max_size 128M 

因为您可能需要修改php.ini文件后重新启动Web服务器。

P.S:不要使用ini_set()函数,而是使用php.ini文件。因为那些upload_max_filesize和post_max_size在运行时不能被修改。上传大于php.ini中指定的值的文件将导致解析器执行ini_set()函数失败。

+0

我仍然试图打破它。 – user3270940 2015-03-19 07:10:30

+0

你刚刚使用了哪种方法? – 2015-03-19 07:15:58

+0

或者这可能是因为你的php内存限制。也尝试通过php.ini中的'memory_limit = 128M'增加内存限制。 – 2015-03-19 07:18:48