我需要将我的图像转换为base64字符串,以便我可以将我的图像发送到服务器.这个有没有js文件......?否则如何转换它
我最近问了另一个(相关的)问题,这导致了这个后续问题: 提交数据而不是输入表单的文件
通过jQuery.ajax()文档(http://api.jquery.com/jQuery.ajax/)阅读,似乎接受的dataTypes列表不包含图像.
我正在尝试使用jQuery.get(或jQuery.ajax,如果必须)检索图像,将此图像存储在Blob中并将其上传到POST请求中的另一台服务器.目前,看起来由于数据类型不匹配,我的图像最终被破坏(大小以字节不匹配等).
执行此操作的代码如下(它在coffeescript中但不应该难以解析):
handler = (data,status) ->
fd = new FormData
fd.append("file", new Blob([data], { "type" : "image/png" }))
jQuery.ajax {
url: target_url,
data: fd,
processData: false,
contentType: "multipart/form-data",
type: "POST",
complete: (xhr,status) ->
console.log xhr.status
console.log xhr.statusCode
console.log xhr.responseText
}
jQuery.get(image_source_url, null, handler)
Run Code Online (Sandbox Code Playgroud)
如何将此图像检索为blob?
这是我的小提琴.
我只是希望background-image:css中的" "完全加载并在3秒后显示快速淡入效果,直到那时整个div必须是黑色.
怎么可能在css或javascript.
.initials {
position:absolute;
background:black;
background-image: url("http://static.tumblr.com/lxn1yld/Hnxnxaqya/space.gif");
color:white;
margin-top:20px;
padding-top:20px;
padding-bottom:20px;
width:60px;
text-align:center;
margin-left:20px;
font-size:17px;
letter-spacing:5px;
box-shadow:0px 2px 3px rgba(0,0,0,.15);
overflow: hidden;
white-space: nowrap;
}Run Code Online (Sandbox Code Playgroud)
<div class="initials">A</div>Run Code Online (Sandbox Code Playgroud)
我在域上有一个客户端应用程序,在域上client-domain.com有一个服务器端应用程序server-domain.com.服务器端有一个API.客户端应用程序将AJAX请求发送到服务器端应用程序.我使用基于令牌的身份验证,因此客户端应用程序在每个AJAX请求的头文件中发送令牌,例如:"授权:承载{某些令牌}".当我需要获取或发布一些数据时,它可以很好地处理AJAX请求.
但服务器端API也保留文件.例如图像.文件是私有的,只有经过身份验证的用户才能获取它们.我需要在<img>标签的客户端显示这些图像.我无法使用它们,<img src="http://server-domain.com/path/to/image">因为在这种情况下,浏览器不会向服务器端发送Authorization标头.
采用的解决方案是什么?客户端应用程序如何从服务器端API加载图像?
我想使用post从活动目录中检索信息(例如缩略图).
<?php
/**
* Get a list of users from Active Directory.
*/
$ldap_password = $_POST['password'];
$ldap_username = $_POST['username'];
$server = 'ldap://xxxxxxxxxxxxxxxxxxxxxx';
$domain = 'xxxxxxxxxxxxxxxxx';
$port = 389;
$ldap_connection = ldap_connect($server, $port);
if (FALSE === $ldap_connection){
// Uh-oh, something is wrong...
}
// We have to set this option for the version of Active Directory we are using.
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3) or die('Unable to set LDAP protocol version');
ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0); // We need this for doing an LDAP search. …Run Code Online (Sandbox Code Playgroud) <img>加载错误可能有不同的原因,例如网络错误响应,图像数据错误......
error收到的对象onerror似乎没有说明确切的原因.
有没有办法知道错误是由于网络错误,比如说HTTP 500还是网络超时?
编辑:
我不是在寻找一种加载资源的替代方法,例如AJAX请求.我需要专门针对事件<img>标记的答案onerror.原因是我正在使用这种方法进行像素跟踪,我需要一种方法来重试网络错误.我也没有寻找其他跟踪方法,如JSONP.
我有一个请求调用一堆图像,如下所示:
<a href='www.domain1.com'><img src='../image/img1.png' onerror='imgError(this);'/></a>
<a href='www.domain2.com'><img src='../image/img2.png' onerror='imgError(this);'/></a>
Run Code Online (Sandbox Code Playgroud)
问题是当进行调用时,一些图像(~20%)还没有准备好.他们需要另一秒钟.
所以在js或jquery中我想做的是在出错时获取失败的图像,等待1秒,然后再尝试加载那些失败的图像.如果他们在第二次尝试失败 - 哦,我很好.但我没有正确地这样做...我不应该在js中的另一个方法中调用超时吗?
function imgError(image) {
image.onerror = "";
image.src = image;
setTimeout(function () {
return true;
}, 1000);
}
Run Code Online (Sandbox Code Playgroud) 我有<img src="..." />一个默认src设置的标签.我想让jQuery做一个ajax请求来获取另一个图像,当这个新图像完全加载时,设置<img ... />标签的src,这样就没有闪烁.我不想做任何类似的预加载器new Image().src="foo".我真的很喜欢加载ajax请求的iamges.有任何想法吗?
我发现了许多描述 javascript 图像加载的主题,但并不完全是我要搜索的主题。
我目前正在以正常方式加载 html 中的图像,例如
<img src="images/big-image.jpg">
Run Code Online (Sandbox Code Playgroud)
这会导致网页上的空白空间从上到下填充了加载图像。此外,我总是要注意图像的文件大小。
什么我要实现的是,在页面加载时,每幅图像(约10KB)的缩小的版本显示。当页面完全加载时,应该有一个 javascript 函数在后台加载大图像并在加载时替换它们。
我已经找到了一种使用 javascript 执行此操作的方法,但是在替换所有图像之前,浏览器会显示他处于“加载”状态。是否可以使用异步方法在后台执行加载任务?
<img src="small.jpg" id="image">
<script>
<!--
var img = new Image();
img.onload = function() {
change_image();
}
img.src = "small.jpg";
function change_image() {
document.getElementById("image").src = "big.jpg";
}
//-->
</script>
Run Code Online (Sandbox Code Playgroud) 我html从请求到我的自制服务器返回一个简单的页面:
<html>
<head>
<title>Server Sample</title>
</head>
<img src="/stream.jpeg">
</html>
Run Code Online (Sandbox Code Playgroud)
要img在页面中呈现图像,在路径/stream.jpeg下向服务器发出第二个请求以获取实际图像数据.但是,如果此请求由于某些原因而失败,我想向用户显示错误页面或某种消息.从失败请求的上下文重定向或生成html错误页面似乎不起作用,可能是因为初始页面需要图像.在这种情况下,页面显示"空"img标记而不是想要的错误.
解决这个问题最便携的方法是什么?如果可能的话,我更喜欢使用html解决方案,但也允许使用javascript.
请注意,我编写的服务器非常简单,动态生成非常简单的页面,它不是复杂服务器可以提供的那种扩展.
javascript ×9
jquery ×5
ajax ×3
html ×3
api ×1
asynchronous ×1
base64 ×1
css ×1
fiddle ×1
image ×1
loading ×1
php ×1
preloading ×1