5

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

4

2 回答 2

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调整图像大小,然后使用文件系统函数来移动和删除临时上传。

于 2010-12-12T14:54:16.873 回答
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>
于 2010-12-12T14:53:10.007 回答