当前位置: 首页 > 面试题库 >

使用ajax调用从php服务器发送图像

夔建章
2023-03-14
问题内容

我要尝试做的就是从服务器中搜索文件并显示图片。HTML有一个简单的搜索栏,您可以输入搜索词。JavaScript使用ajax请求来调用PHP文件,然后PHP在服务器上找到图像并将其发送回以显示。

现在发生的是该图像没有显示,并且我得到一个图标,指示一些无效的图像。Ajax调用似乎正在运行,但是我认为我发回的数据不正确。我一直在尝试搜索它,但是每个人似乎对如何执行它都有不同的看法,这有点令人困惑。

的HTML

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">    </script>
<script src="search.js"></script>
<style type="text/css"></style>
</head>
</body>
    <header>
    <h1>My Page</h1>
    </header>
    <input type=text name="search" id="searchbox" placeholder="Search...">
    <input type=button value="Search" id=search><br>
    <div id="images"></div>
</body>

的JavaScript

$(document).ready(function() {
    $("#search").on('click', function(){
        $.ajax({
           url: '/search.php',
           type: 'POST',
           data: $("#searchbox").serialize(),
           success: function(data) {
            $('#images').append(data);
           },
           error: function() {
            alert('failure');
           }
        });
    });
});

的PHP

<?php
if(isset($_POST['search'])) {
    $searchterm = $_POST['search'];
    $image = "images/".$searchterm.".jpeg";
    echo '<img src="data:image/jpeg;base64,'.base64_encode($image).'">';
}
else {
    echo 'Error: image not found';
}

PS。目前,我忽略了任何类型的错误检查,我只是试图使其正常工作,并假设输入全部有效


问题答案:

建议:

  1. 试试这个链接:

使用PHP的图像数据URI

<?php
if(isset($_POST['search'])) {
    $searchterm = $_POST['search'];
    $image = "images/".$searchterm."jpeg";
    $imageData = base64_encode(file_get_contents($image));
    $src = 'data: '.mime_content_type($image).';base64,'.$imageData;
    echo '<img src="', $src, '">';
    ...
  1. 调试jQuery /浏览器和PHP /后端服务器之间的实际HTTP通信。您可以使用Telerek Fiddler或Firebug等工具。

希望有帮助!



 类似资料:
  • 问题内容: 我的网页上的表单有问题。我正在尝试使用ajax和json将表单值发送到php服务器,但是我无法正确地创建json对象。 我的JS代码 我的PHP代码 我知道已经问过类似的问题,但是答案并没有帮助我。 感谢您的帮助。 问题答案: 我能够获取json对象并在php端进行解析。某些变量的名称可能有所不同,部分原因是其中一些是预先编写的代码。这是我采取的步骤。 资料夹结构 Index.html

  • 问题内容: 我需要能够将图像和某些表单字段从客户端画布元素发送到PHP脚本,最终以$ _POST和$ _FILES结尾。当我这样发送时: $ _POST和$ _FILES都重新填充,但是$ _FILES中的图像数据仍然需要像这样解码: …以将其另存为可读的PNG。这不是一个选项,因为我试图将图像传递给Wordpress的media_handle_upload()函数,该函数需要指向指向可读图像的$

  • 我试图发送电子邮件使用gmail smtp使用javax.mail.下面是我的代码 代码工作正常当我在本地服务器上运行它时,但当我尝试在Elastic beanstek上运行它时(我的服务器在AWS EBS上运行),身份验证失败异常即将到来注意:我已打开从Google A/c设置访问不太安全的应用程序,但我仍然收到此错误 javax.mail.身份验证失败异常:534-5.7.14请通过您的网络浏

  • 我正在尝试从Android向我的php服务器提交数据。然而,所有的答案似乎都使用了不推荐使用的ApacheHTTP库。我不想用它,当我试着用的时候,它不起作用。 现在它似乎什么也没做。它似乎连接到web服务器,但服务器不写入任何数据。如果我只是用浏览器访问url,它会写入一个文件。 php代码是 然后在Android studio中,我会在按下按钮后放入所有代码

  • 问题内容: 简短: 是否有一种方法可以将数据从服务器推送到已登录的用户会话,而无需该用户发出HTTP请求? Long(er): 我正在Apache / PHP / MySQL服务器上构建HTML5应用程序,可以将其提供给移动设备上的用户(或可能通过PhoneGap应用程序)。 我想让用户知道应用程序中何时有可用的新信息,而不会通过强迫该用户执行对服务器的调用或要求AJAX调用来增加过多的数据费用(