如何将简单图像上传添加到表单?

时间:2010-12-12 14:49:10

标签: php image forms file-upload asyncfileupload

我有一个HTML表单。我想为它添加一个简单的图像上传功能,它将把图像发送到名为“next.php”的php页面。有关如何做的任何建议吗?

2 个答案:

答案 0 :(得分: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函数移动并删除临时上传。

答案 1 :(得分: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>