2012-03-27 160 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

相關問題