2012-03-27 138 views
0

我有一个很好用的图片上传表单!对我来说......似乎几乎每个人都会有错误!这是怎么回事? (!我知道我的节目是马虎,我不是在寻找的批评,只是一个权宜之计请帮助。)图片上传表单适用于某些人,但不适用于其他人?

形式:

<form enctype="multipart/form-data" action="imgupload.php" method="POST"> 
Image upload: 
<input name="uploadedfile" type="file" /> 
<input type="submit" value="Upload" /> 
</form> 

表单处理程序:

<?php 

if (($_FILES["uploadedfile"]["type"] == "image/jpeg") 
&& ($_FILES["uploadedfile"]["size"] < 4000000)) 
{ 


    // Where the file is going to be placed 
    $target_path = "/images/"; 


    /* Add the original filename to our target path. 
    Result is "images/filename.extension" */ 

//////////RENAME FILE///////////// 


$filetype = pathinfo($_FILES['uploadedfile']['name'], PATHINFO_EXTENSION); 
$oldtitle = $_FILES["uploadedfile"]["name"]; 
$take_file_extension = substr($oldtitle, 0, strrpos($oldtitle, '.')); 
$title = "jeep_".$take_file_extension.".".$filetype; 


    $target_path = $target_path . $title; 


if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 

    echo "The picture ". basename($_FILES['uploadedfile']['name']). 
    " has been uploaded<br><br>----------------<br><br>"; 

    echo "Upload: " . $_FILES["uploadedfile"]["name"] . "<br>"; 
    echo "Size: " . ($_FILES["uploadedfile"]["size"]/1024) . " Kb<br>"; 

    } 
} 



else 
{ 
    echo "There is a file size limit of 1MB. Only JPG's can be uploaded!"; 
} 
?> 

Works的我每次都会得到“有1MB的文件大小限制,只有JPG可以上传!”错误。

+0

可能是他们正在上传png,gif,bmp? – itachi 2012-03-27 02:46:10

+0

不,不专门为jpgs工作。 – user1142872 2012-03-27 02:55:32

回答

0

即使您的代码设置为接受图像可达4MB,你必须通过编辑几个php.ini中设置的值,告诉PHP允许这种尺寸的图像:

,为什么你只能上传.jpg图像的原因是因为您的条件被限制为JPG格式:

if (($_FILES["uploadedfile"]["type"] == "image/jpeg") 

尝试开关:

switch ($_FILES["uploadedfile"]["type"]) { 

    case 'image/jpeg': 
    case 'image/png': 
     break; 

    default: 
     throw new Exception('Invalid image type'); 
} 
+0

事实上,他们不能上传任何大小的图像(甚至不是一个40kb img),告诉我它不能是php.ini设置。我有我的php.ini设置设置为允许1024M。我相信这是最大的?没有运气。 – user1142872 2012-03-27 02:57:53

+0

Ahhh,“文件大小限制为1MB,只能上传JPG格式”必须是与类型相关的,而不是大小,然后重点关注文件类型。 – 2012-03-27 03:01:57

+0

另一个奇怪的是我可以上传完全相同的图像,他们不能。 – user1142872 2012-03-27 03:06:12

0

我想知道如果它是你在php.ini的max_execution_time。尝试更改上述30

http://www.php.net/manual/en/info.configuration.php#ini.max-execution-time

慢(低带宽)的连接可能需要更长的时间来上传使其报错了较大的图像,您的连接可能会更快。

+0

将其更改为40,让我的同事现在进行测试。 – user1142872 2012-03-27 03:40:58

+0

不行。这只是一个谜,我想...... – user1142872 2012-03-27 04:32:39

+0

我一直在遇到同样的问题。我也改变了memory_limit和max_input_time。我现在正在测试,看看是否能解决任何问题。 – 2012-03-27 14:05:38

相关问题