2010-12-12 96 views
3

我有一個html表單。我想添加一個簡單的圖片上傳功能,它會將圖片發送到名爲「next.php」的php頁面。有關如何做的建議?如何添加簡單的圖片上傳到表單?

+0

Google搜索PHP上傳文件返回約2500萬個結果,例如:http://www.w3schools.com/PHP/php_file_upload.asp PS:我看到你標記了你的問題'asyncfileupload':你想要嗎?上傳是異步的? – nico 2010-12-12 14:54:54

+0

導航到http:// google com,然後輸入php image upload。這總是有幫助的。您甚至可能會用您的母語 – 2010-12-12 14:56:06

+0

@Col找到一篇文章。彈片...... heh – 2010-12-12 15:09:35

回答

1

我不知道在客戶端與文件input進行交互的任何方式,因此您需要驗證/驗證上傳的文件服務器端(在'next.php'腳本中),但是這已經足夠了:

<form action="path/to/next.php" method="post" enctype="multipart/form-data"> 
    <fieldset> 
     <input type="file" name="picture" id="picture" /> 
    </fieldset> 
</form> 
+1

必須設置enctype屬性,否則這不起作用。他會在牆上打他的頭,試圖弄清楚什麼是錯的... – 2010-12-12 15:04:12

+0

@Brian H,哎呀......謝謝,並編輯。總是有** ** ... = D – 2010-12-12 15:11:16

3

創建HTML表單類似如下:

<html> 
<body> 
<form action="next.php" method="post" enctype="multipart/form-data"> 
<label for="image">Image:</label> 
<input type="image" name="image" id="image" /><br /> 
<input type="submit" name="submit" value="Submit" /> 
</form> 
</body> 
</html> 

你 「next.php」 文件可以處理類似這樣的形象:

<?php 

if ($_FILES["file"]["error"] > 0) 
    echo "Error: " . $_FILES["image"]["error"] . "<br />"; 
else 
{ 
    echo "Upload: " . $_FILES["image"]["name"] . "<br />"; 
    echo "Type: " . $_FILES["image"]["type"] . "<br />"; 
    echo "Size: " . ($_FILES["image"]["size"]/1024) . " Kb<br />"; 
    echo "Stored in: " . $_FILES["image"]["tmp_name"]; 
} 

在這一點上,您可以通過檢查類型並確保其只有jpg,gif,png或類型來更安全。我建議將圖像複製到2或3個尺寸(大拇指,中等,原始),並從臨時目錄中刪除它。您可以使用ImageMagick調整圖像大小,然後使用filesystem函數移動並刪除臨時上載。