2010-12-12 87 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函数移动并删除临时上载。