2014-04-17 118 views
0

Hy,我有一个页面,用户可以上传图像(一次一个,第二次上传覆盖第一个)。图像上传后图像大小调整php内存限制

当有人选择超过5 MB的图像时,脚本将上传图像,但它会运行另一个脚本,它将调整图像的大小以使其更小。

所以,我得到的图像大小,设置最大大小,像这样:

$size = $_FILES["userImage"]["size"] 
$maxSize = 5000000 //this should be 5 MB, right? 

然后,我将图像移动到文件夹这一行

move_uploaded_file($tmpName, "../user_img/".$sessionId."/".$sessionId."_img.".$type); 

,并在最后,我想调整图片的大小,如果是超过5 MB

if($size > $maxSize){ 
include('resizeImage2.php'); 
//indicate which file to resize (can be any type jpg/png/gif/etc...) 
$file = "../user_img/".$sessionId."/".$sessionId."_img.".$type; 

//indicate the path and name for the new resized file 
$resizedFile = $file; 

//call the function (when passing path to pic) 
//smart_resize_image($file, null, 1200, 0, true, $resizedFile, true, false, 100); 
//call the function (when passing pic as string) 
smart_resize_image(null , file_get_contents($file), 1200 , 0 , true , $resizedFile , true , false ,100); 
    } 

的resizeImage2.php是我的实习医生发现t在此address

并且当我尝试从我的PC上传图像时,出现7MB和10004 x 10967分辨率的问题。我得到一个错误

用尽62914560个字节

允许的内存大小(试图分配40016个字节)

我知道我可以改变php.ini中的内存限制,但我想知道是否有另一种方法,使这项工作?我的脚本是否写得很糟糕?

在此先感谢!

回答

2

试一下这个把它放在标题上的页面级

<?php 
ini_set('memory_limit','16M'); 
?> 
+0

我知道我可以设置内存限制,但它是正确的方式增加上传文件的大小?还有一个问题,我真正的服务器(我目前正在xampp工作)有我的网站有限64 MB的内存限制 –

+0

阅读此http://www.tech-recipes.com/rx/777/solve-php-fatal -error-allowed-memory-size-of-8388608-bytes-exhausted-tried/ – shashank

+0

thnx,但它没有帮助我。我知道我可以在php.ini中设置值,但我正在寻找其他方法..也许我的脚本写得很糟糕,并且有些事情要做。这样,我可以将我的内存限制增加到2GB ..然后呢? –

2

您可以增加此上传的文件限制在php.ini文件中,通过添加或更新类似于下面的一行:

memory_limit = 128M 
0

有两种方法可以增加最大上传大小php

增加文件上传大小.htaccess

php_value upload_max_filesize 10M 

通过php.ini文件

upload_max_filesize = 10M