Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用javascript从服务器接收文本和图片_Javascript_Php_Html - Fatal编程技术网

用javascript从服务器接收文本和图片

用javascript从服务器接收文本和图片,javascript,php,html,Javascript,Php,Html,我需要每秒刷新一次img标签。因此,我编写了一些代码来更改img标记的src属性,并从image.php加载图片。 一切都好。 有时候image.php没有图片,或者image.php中出现了问题。我需要image.php随图片一起发送消息以确定图片的有效性,或者告诉我错误号。 所以我需要一个php代码,将文本和图片放入它的输出中 现在我用 //code header('Content-Type: image/jpeg'); imagejpeg($im); imagedestroy($im);

我需要每秒刷新一次img标签。因此,我编写了一些代码来更改img标记的src属性,并从image.php加载图片。 一切都好。 有时候image.php没有图片,或者image.php中出现了问题。我需要image.php随图片一起发送消息以确定图片的有效性,或者告诉我错误号。 所以我需要一个php代码,将文本和图片放入它的输出中

现在我用

//code
header('Content-Type: image/jpeg');
imagejpeg($im);
imagedestroy($im);
php就像一个.jpg文件,我可以在img标记的src属性中使用它。但是我需要一种方法来确定image.php是否输出了有效的图像而不是php错误

js代码:

var newImage = new Image();
var count = 0;
function updateImage()
{

    if(newImage.complete) {
    document.getElementById("myimg").src = newImage.src;
    newImage = new Image();
    newImage.src = "socket.php?message=0&image" + count++ + ".jpg";
    }

}

我将使用Ajax完成这样的任务,并从服务器发回图像路径和任何其他添加的信息


客户端可以很容易地读取Ajax响应。

JavaScript方面,您可以通过
error
event()找到无法加载图像的信息

如果图像加载失败,您可以通过Ajax请求相同的URL,以获取错误消息。当然,除非您也希望将错误消息编码为图像(并在客户端解码),否则这可能是个好主意,也可能不是个好主意。

第一种方法:

使用
img
元素的
onerror
属性:

<img src="image.gif" onerror="alert('The image could not be loaded.')"> 
JS:

另一种方法是将
onerror
处理程序设置为Image类的实例:

var image = new Image();
img.src = /* url to the imgage */;
image.onload = function() {
    // assign img.src to to src property of the `img` element
}
image.onerror = function() {
    // do actions on error
}
注:

第二种方法是如何正确使用
new Image()

什么意思是“图片无效”?“图片无效”意味着Image.php失败,它创建的图像不是真实的图像。我在src属性中使用这个图像,所以如果image.php的输出不是一个图像而是一个错误,img标记将尝试将该消息显示为一个图像,这将失败,img标记将不显示任何内容。“检测它是否是一个图像”是AI研究的主题。例如,您可以处理服务器错误(404500等)。显示java脚本。将其添加到问题中。我不想将图像保存在服务器上。php的作用类似于图像。所以没有“映像路径”,只有一个映像或一条消息错误。@user3604987您要求做一些事情,而不是帮助您。展示你所做的,我们会帮助你。
function handleError() {
    // do something
}
var image = new Image();
img.src = /* url to the imgage */;
image.onload = function() {
    // assign img.src to to src property of the `img` element
}
image.onerror = function() {
    // do actions on error
}