0 / 0 / 0
Регистрация: 17.06.2019
Сообщений: 1
1

Как сохранить изображение из формы в файл и вывести из файла на страничку?

18.06.2019, 13:29. Показов 6708. Ответов 1

Author24 — интернет-сервис помощи студентам
Здравствуйте

Вопрос в том:
как с помощью php сохранить изображение из формы в файл?
как запомнить путь к файлу (чтобы сохранить в json)?
как потом вывести изображение, имея путь к нему, на страничку?

Вот так я сохраняю тему, аннотацию, дату и автора в json файл
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<form enctype="multipart/form-data" method="POST">
    <p>Дата: <br><input type="text" name="date" pattern="[0-9]{2}\.[0-9]{2}\.[0-9]{4}" /><br>01.01.2000</p>
    <p>Тема: <br><input type="text" name="tema" /></p>
    <p>Аннотация: <br><textarea name="annotas"></textarea></p>
    <p>Автор: <br><input type="text" name="avtor" /></p>
    <p>Изображение: <br><input type="file" name="img_news" /></p>
    <p><input type="submit" value="Сохранить"></p>
</form>
 
<?php
/*Вариант №3.  Создать html форму с полями: 
дата новости, 
название новости, 
аннотация новости, 
автор новости, 
картинка для новости. 
 
Написать скрипт, который сохраняет введенную информацию в файл на сервере, 
файл с картинкой сохраняет в папке Images, всю информацию добавляет в формате json. 
 
На отдельной странице реализовать чтение файла в отформатированном виде.*/
 
$data =     isset($_POST['date']) ? $_POST['date'] : null;
$tema =     isset($_POST['tema']) ? $_POST['tema'] : null;
$annotas =  isset($_POST['annotas']) ? $_POST['annotas'] : null;
$avtor =    isset($_POST['avtor']) ? $_POST['avtor'] : null;
$img_news = isset($_POST['img_news']) ? $_POST['img_news'] : null;
 
if (($data != null) && ($tema != null) && ($annotas != null) && ($avtor != null)){
    $file = file_get_contents('MyFile.json');  // Открыть файл data.json
    $taskList = json_decode($file,TRUE);        // Декодировать в массив 
    unset($file);                               // Очистить переменную $file
 
    $taskList[] = array( 
            'tema' => $tema,
            'annotas' => $annotas,
            'data' => $data,
            'avtor' => $avtor,
        );        // Представить новую переменную как элемент массива, в формате 'ключ'=>'имя переменной'
 
 
    file_put_contents('MyFile.json',json_encode($taskList));  // Перекодировать в формат и записать в файл.
    unset($taskList);
}
else
    echo "Не все поля заполнены";
?>
?>
Вот так я вывожу текстовую информацию на страничку:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$file = file_get_contents('MyFile.json');     // Открыть файл data.json
$taskList = json_decode($file, TRUE);              // Декодировать в массив 
unset($file);
 
foreach ($taskList as $key => $value){ 
    foreach ($value as $Pole => $Znach){
            //echo $Pole.": ".$Znach."<br>";
            switch ($Pole) {
            case tema:
                $tema = $Znach;
                break;
            case annotas:
                $annotas = $Znach;
                break;
            case data:
                $data = $Znach;
                break;
            case avtor:
                $avtor = $Znach;
                break;
            }
    }
    echo $tema."<br>";
    echo "Аннотация:<br>".$annotas."<br>";
    echo "Дата: ".$data."<br>";
    echo "Автор: ".$avtor;
}
unset($taskList);
?>
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2019, 13:29
Ответы с готовыми решениями:

Как сохранить изображение с формы?
вообщем с помощью события paint или с помощью дескриптора формы нарисовал на ней к примеру...

Как сохранить изображение в файл?
Подскажите, плиз, как сохранить изображение в файл, после того, как ты загрузил его LoadImage и...

Как сохранить в файл изображение?
есть переменная CBitmap* m_pBitmap=(CBitmap*)hGlob; Как ее сохранить в файл в виде bmp или png...

Как сохранить изображение из RichTextBox в файл?
На форме лежит RichTextBox, в котором EnableAutoDragAndDrop = true. RichTextBox пустой. Открываю...

1
39 / 22 / 10
Регистрация: 31.05.2017
Сообщений: 152
22.06.2019, 18:42 2
Лучший ответ Сообщение было отмечено Ingimundr как решение

Решение

Ingimundr, вот как пример, переделайте под себя
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Фотоальбом с возможностью закачки.
header('Content-Type: text/html; charset=utf-8');
$imgDir = "img"; // каталог для хранения изображений
if (isset($_REQUEST ['doUpload'])) {// Проверяем, нажата ли кнопка добавления фотографии, 
    if (!file_exists($imgDir))
        mkdir($imgDir, 0777); // создаем каталог, если его еще нет
 
    $data = $_FILES ['file'];
    $tmp = $data ['tmp_name'];
 
    if (file_exists($tmp)) {// Проверяем, принят ли файл,
        $info = getimagesize($_FILES ['file'] ['tmp_name']); //Функция вернет размер изображения, тип файла, height, width, а также тип содержимого HTTP
        // Проверяем, является ли файл изображением,
        if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
            // Имя берем равным текущему времени в секундах, а
            // расширение — как часть MIME-типа после "image/".
            $name = "$imgDir/" . time() . "." . $p [1];
            // Добавляем файл в каталог с фотографиями.
            move_uploaded_file($tmp, $name);
        } else {
            echo "<h2>Попытка добавить файл недопустимого формата!</h2>";
        }
    } else {
        echo "<h2>Ошибка закачки #{$data['error']}!</h2>";
    }
}
if (isset($_REQUEST ['delete'])) {
    $photo_to_delete = $_REQUEST ['url'];
    $status = unlink($photo_to_delete) or exit("Невозможно удалить файл");
}
// Считываем в массив фотоальбом.
$photos = array();
foreach (glob("$imgDir/*") as $path) {
    $sz = getimagesize($path); // размер
    $tm = filemtime($path); // время добавления
    // Вставляем изображение в массив $photos.
    $photos [$tm] = array(
        'time' => $tm, // время добавления
        'name' => basename($path), // имя файла
        'url' => $path, // его URI
        'w' => $sz [0], // ширина картинки
        'h' => $sz [1], // ее высота
        'wh' => $sz [3]); // "width=xxx height=yyy"
}
// Ключи массива $photos — время в секундах, когда была добавлена
// та или иная фотография. Сортируем массив: наиболее новые
// фотографии располагаем ближе к его началу.
krsort($photos);
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<body>
    <form action="<?php echo $_SERVER['SCRIPT_NAME'] ?>" method="POST" enctype="multipart/form-data">
        <input type="file" name="file"><br>
        <input type="submit" name="doUpload" value="закачать новую фотографию">
        <hr>
    </form> 
<?php foreach ($photos as $n => $img) { ?> 
        <p>
        <form action="<?php echo $_SERVER['SCRIPT_NAME'] ?>" method="POST" enctype="multipart/form-data">  
            <input type="hidden" value="<?php echo $img['url']; ?>" name="url">
            <img src="<?php echo $img['url'] ?>" <?php echo $img['wh']?> id =<?php echo $img['time']?>  alt="Дoбaвлeнa <?php echo date("d.m.Y H:i:s", $img['time']) ?>"/> 
            <p>Дoбaвлeнa <?php echo date("d.m.Y H:i:s", $img['time']) ?></p>
            <input type="submit" name="delete" value="Удалить">
        </form>
<?php } ?> 
</body>
1
22.06.2019, 18:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2019, 18:42
Помогаю со студенческими работами здесь

Как сохранить нарисованное изображение в файл?
Не могу сделать так, чтобы нарисованный рисунок по нажатию кнопки сохранялся в файл. И еще,...

Как сохранить изображение с PictureBox'a в файл
Задача специфическая, не знаю решается ли. Если кто знает, буду благодарен за помощь. Опишу...

Как сохранить изображение в графический файл в Code::Blocks?
Здравствуйте! Делаю курсовую на тему бинарные деревья. По заданию нужно чтобы была возможность...

Как сохранить страничку.
Собственно, как правильно сохранить нужную страничку сайта. А то выбираю &quot;сохранить как &quot; веб...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru