2013-07-25 74 views
0

因此,我試圖通過php在本地主機上設置圖片上傳,然後運行代碼並連接到數據庫,好了,我得到了上傳錯誤。由於表單的所有其他部分都是在逐節檢查之後工作的,因此我只需添加上載輸入的html及其相關的php腳本。在PHP中上傳圖片失敗

<input type="file" name="image" id="image-select" /> 

並具有處理上傳後的圖片上傳和驗證的PHP的一部分:

$image = $_FILES ['image']['name']; 
$type = @getimagesize ($_FILES ['image']['tmp_name']); 

//Never assume image will upload okay 
if ($_FILES['image']['error'] !== UPLOAD_ERR_OK) { 
    die("Upload failed with error code " . $_FILES['image']['error']); 
} 

//Where the file will be placed 
$target_path = "uploads/"; 

// Add the original filename to target path 
$path= $target_path . basename($image); 

// Check if the image is invalid before continuing 
if($type === FALSE || !($type[2] === IMAGETYPE_TIFF || $type[2] === IMAGETYPE_JPEG || $type[2] === IMAGETYPE_PNG)) { 
    echo '<script "text/javascript">alert("This is not a valid image file!")</script>'; 
    die("This is not a valid image file!"); 
} else { 
     move_uploaded_file($_FILES['image']['tmp_name'], $path); 
} 

一旦代碼打上傳過程中,會出現錯誤。我試圖上傳一個小的PNG文件我添加的相關代碼在它們出現在腳本中時也在它們各自的順序中。

+3

什麼是錯誤? – JohnnyFaldo

+0

由於某種原因,沒有代碼生成 - 只是上傳失敗,錯誤代碼。 –

+1

這是我的問題,什麼是錯誤代碼 – JohnnyFaldo

回答

0

請問您可否在此處輸入錯誤。如果錯誤表示提交頁面文件未被上傳後。那麼請檢查您的表單enctype。看下面的例子

<form action="" method="post" enctype="multipart/form-data"> 
<input type="file" name="image" id="image-select" /> 
<input type="submit" value="Submit"> 
</form> 
+0

哦,是的,我忘了添加enctype,我會測試這個。謝謝。 –

+0

是的,這是原因,其他的一切都很好。非常感謝你! –

0

只是在這裏黑暗的野生刺傷,因爲你還沒有提供你的表單標籤,但你已經記得enctype屬性不是嗎?

對不起,我沒有50的聲望,否則我會問這是一個評論。

<form enctype='multipart/form-data' action=''> 
<input type="file" name="image" id="image-select" /> 
</form> 

您也應該檢查文件是否調用和getimagesize(前上傳OK)(不,這是你的問題的來源)

0

如果您正在使用PHP5Imagick,則您可以嘗試使用類似以下的內容:

$image->readImageFile($f);