Загрузить изображение imgur на текущей странице

Я пытаюсь интегрировать imgur на свой веб-сайт. В настоящее время у меня есть код HTML и php. Это работает нормально. Единственное, он не отображает загруженное изображение на текущей странице, а открывает новую страницу. Есть ли способ загрузить изображение на текущей странице?

Вот код:

<form action="upload.php" enctype="multipart/form-data" method="POST">
 Choose Image : <input name="img" size="35" type="file"/><br/>
 <input type="submit" name="submit" value="Upload"/>
</form>

PHP-файл:

<?
$img=$_FILES['img'];
if(isset($_POST['submit'])){ 
    if($img['name']==''){  
        echo "<h2>An Image Please.</h2>";
    }else{
        $filename = $img['tmp_name'];
        $client_id="my-id";
        $handle = fopen($filename, "r");
        $data = fread($handle, filesize($filename));
        $pvars   = array('image' => base64_encode($data));
        $timeout = 30;
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_URL, 'https://api.imgur.com/3/image.json');
        curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
        curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Client-ID ' . $client_id));
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
        $out = curl_exec($curl);
        curl_close ($curl);
        $pms = json_decode($out,true);
        $url=$pms['data']['link'];
        if($url!=""){
            echo "<h2>Uploaded Without Any Problem</h2>";
            echo "<img src='$url'/>";
        }else{
            echo "<h2>There's a Problem</h2>";
            echo $pms['data']['error'];  
        } 
    }
}
?>

person Horay    schedule 10.11.2015    source источник


Ответы (1)


изменить действие формы

action="upload.php"

к себе

также ваш php должен начинаться с

<?php 
person Lucky Chingi    schedule 10.11.2015
comment
PHP находится в другом файле. Я только что обновил вопрос, сказав, что - person Horay; 10.11.2015
comment
Когда я это делаю, я получаю следующую ошибку: Not Found Запрошенный URL-адрес /self не был найден на этом сервере. Apache/2.4.9 (Win64) PHP/5.5.12 Сервер на локальном хосте Порт 80 - person Horay; 10.11.2015
comment
‹form action=‹?php echo PHP_SELF; ?› enctype=multipart/form-data method=POST› - person Lucky Chingi; 10.11.2015
comment
Ой. Теперь это работает. Но есть ли способ сделать это без перезагрузки страницы? - person Horay; 10.11.2015
comment
Отправка формы всегда будет загружать страницу, копайтесь в Ajax, если вы не хотите, чтобы страница загружалась. - person Lucky Chingi; 11.11.2015
comment
Ваш ajax может отправить запрос на страницу PHP, и эта страница может обрабатываться так, как вы хотите. Если на этот вопрос был дан ответ, отметьте его как закрытый и попробуйте AJAX, прежде чем публиковать вопрос о загрузке изображения ajax - не хочу голосовать против;) - person Lucky Chingi; 11.11.2015
comment
Спасибо! Вот новый вопрос, если вы не против ответить. Действительно ценю это! stackoverflow.com/questions/33640571/ - person Horay; 11.11.2015