【问题标题】:Load imgur image in current page在当前页面加载 imgur 图像
【发布时间】:2026-01-29 22:05:01
【问题描述】:

我正在尝试将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'];  
        } 
    }
}
?>

【问题讨论】:

    标签: php html ajax imgur


    【解决方案1】:

    更改表单操作

    action="upload.php"
    

    给自己

    你的 php 也应该以

    开头
    <?php 
    

    【讨论】:

    • php 在不同的文件中。我刚刚更新了这个问题,说
    • 执行此操作时出现以下错误:未找到在此服务器上未找到请求的 URL /self。 Apache/2.4.9 (Win64) PHP/5.5.12 服务器在 localhost 端口 80
    • 哦。现在它起作用了。但是有没有办法在不重新加载页面的情况下做到这一点?
    • 表单提交总是会加载页面,如果你不想加载页面,请挖掘Ajax。