Как добавить простую загрузку изображений в форму? - PullRequest
3 голосов
/ 12 декабря 2010

У меня есть HTML-форма.Я хочу добавить к нему простую функцию загрузки изображений, и она будет отправлять изображение на страницу php под названием "next.php".Любые предложения о том, как это сделать?

Ответы [ 2 ]

3 голосов
/ 12 декабря 2010

Создайте 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 для изменения размера изображений, а затем использовать функции файловая система для перемещения и удаления временных загрузок.

1 голос
/ 12 декабря 2010

Мне неизвестно о каких-либо средствах взаимодействия с файлом 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>
...