我正在从数据库中检索Blob图像,我希望能够使用JavaScript查看该图像.以下代码在页面上生成一个损坏的图像图标:
var image = document.createElement('image');
image.src = 'data:image/bmp;base64,'+Base64.encode(blob);
document.body.appendChild(image);
Run Code Online (Sandbox Code Playgroud)
我有一个数据URI,我从javascript和尝试通过PHP保存.我使用以下代码,它给出了一个明显损坏的图像文件:
$data = $_POST['logoImage'];
$uri = substr($data,strpos($data,",")+1);
file_put_contents($_POST['logoFilename'], base64_decode($uri));
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs 9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAxklEQVQYlYWQMW7CUBBE33yITYUUmwbOkBtEcgUlTa7COXIVV5RUkXKC5AxU EdyZVD4kyKxkwIrr9vd0c7Oih aopinLNsF6Qkg2XW4XJ7LGFsAAcTV6lF5/jLdbALA9XDAXYfthFQVx OrmqKYK88/7rbbMFksALieTnzu9wDYTj6f70PKsp2kwAiSvjXNcvkWpAfNZkzWa/5a9yT7fdoX7rrB7hYh2fXo9HdjPYQZu3MIU8bYIlW20y0RUlXG2Kpv/vfwLxhTaSQwWqwhAAAAAElFTkSuQmCC
Run Code Online (Sandbox Code Playgroud)
代码下面是作为Data-URI的实际图像.'logoImage'是上面的字符串,$ uri是字符串减去'image/jpeg; base64'.
我试图解析javascript(使用javascript),我遇到了对象的问题.javascript如何确定对象或块之间的区别?
例如
{ x : 1, y : 2}
Run Code Online (Sandbox Code Playgroud)
令牌流:
[{][x][:][1][,][y][:][2][}]
Run Code Online (Sandbox Code Playgroud)
然而,显然是一个对象
{ var x = 1; var y = 2}
Run Code Online (Sandbox Code Playgroud)
令牌流:
[{][var][x][=][1][;][var][y][=][2][}]
Run Code Online (Sandbox Code Playgroud)
是一个完全有效的匿名JavaScript块.我如何有效地将每个令牌流识别为对象或块?
但是,更重要的是,我将如何确定可能是对象的令牌流或如下所示的块之间的区别:
{ a : null }
Run Code Online (Sandbox Code Playgroud)
令牌流:
[{][a][:][null][}]
Run Code Online (Sandbox Code Playgroud)
这可以或者是一个对象,其参数等于零,或者它可能是一个块,其中该块中的第一条语句(null)具有一个标签(a)
我正在寻找一种解决方案,允许我从文件上传输入中获取文件并通过设置document.body.style.backgroundImage进行预览.
以下代码用于在Image元素中显示预览:
function setImage(id, target){
input = document.getElementById(id);
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
target.src = e.target.result;
};
reader.readAsDataURL(input.files[0]);
}
}
Run Code Online (Sandbox Code Playgroud)
其中id是id的id <input type='file'>,而target是<img>元素.
下面的代码概述了我想要发生的事情,但是e.target.result是data:image/png;base64格式的,显然在css请求url的地方不起作用.
function setBackgroundImage(id){
input = document.getElementById(id);
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
document.body.style.backgroundImage = e.target.result;
};
reader.readAsDataURL(input.files[0]);
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
我正在创建一个文本编辑器,我刚刚编写了突出显示算法,让每个语法以不同的颜色显示,并使用正确的解析树渲染到正确的位置.
我想知道是否有人可以提供我,或测试或一系列测试用例的位置,以确保没有任何东西会破坏.测试用例应涵盖在Web上使用的所有JavaScript语法,包括边缘情况(即包括throw尽管很少使用的语法),DOM创建和操作等.
我添加了以下静态测试用例.它应该涵盖所有语法.
有几点需要注意:由于代码在语法级别上递归解析,因此只需要基本情况.例如,编辑:
一个[1]; 和[1] [2] [3] [4] [5]; 将是相同的语法.由于第二行,只是递归地更多sub而第一行.
我创建的测试用例已移至下面的答案.
我正在使用couchDB来获取UUID,以便我可以将新文档发送到数据库.
为了获得这个UUID,我使用了一个curl语句:
function getUUID(){
$myCurlSubmit = curl_init();
curl_setopt($myCurlSubmit, CURLOPT_URL, 'http://localhost:5984/_uuids');
curl_setopt($myCurlSubmit, CURLOPT_HEADER, 0);
$response = curl_exec($myCurlSubmit);
curl_close($myCurlSubmit);
return $response;
}
Run Code Online (Sandbox Code Playgroud)
这将返回预期结果:
{"uuids":["af09ffd3cf4b35c2d94d1ed755000fb8"]}
Run Code Online (Sandbox Code Playgroud)
但是,以下json_decode失败:
print_r('No match, creating new document.');
$uuid = json_decode(trim(getUUID()));
var_dump(json_last_error());
Run Code Online (Sandbox Code Playgroud)
打印的错误是:'int(0)'(不在引号中),$ uuid仍然是一个json字符串.
帮助赞赏谢谢!
编辑:
var_dump($uuid) = int(1)
Run Code Online (Sandbox Code Playgroud)
编辑:var_dump(getUUID())= {"uuids":["af09ffd3cf4b35c2d94d1ed755000fb8"]} \n1
有什么理由为什么我会在我的json上有一个尾随的和/ n?
编辑:
问题是卷曲,看看下面的答案!
我正在寻找一个与PHP相当的JavaScript版本addSlashes.
我发现有很多版本,但它们都没有处理\b,\t,\n,\f或\r.
要完成,这个jsFiddle应该警告: \b\t\n\f\r"\\
我试图从blob写入图像文件.
if($_POST['logoFilename'] != 'undefined'){
$logoFile = fopen($_POST['logoFilename'], 'w') or die ("Cannot create ".$_POST['logoFilename']);
fwrite($logoFile, $_POST['logoImage']);
fclose($logoFile);
}
Run Code Online (Sandbox Code Playgroud)
在前面的代码片段中,$_POST['logoImage']是一个BLOB.该文件已正确写入根目录,但无法打开该文件.在ubuntu 11.04中,我收到以下错误:
Error interpreting JPEG image file (Not a JPEG file: starts with 0x64 0x61).
Run Code Online (Sandbox Code Playgroud)
如果我创建一个img并设置其src = blob,则BLOB会正确显示
下面是BLOB的第一个片段:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAgGBgcGBQgHBwcJCQ
Run Code Online (Sandbox Code Playgroud) javascript ×5
image ×3
php ×3
addslashes ×1
base64 ×1
blob ×1
couchdb ×1
data-uri ×1
decode ×1
escaping ×1
file-io ×1
file-writing ×1
filereader ×1
json ×1
parse-tree ×1
parsing ×1
regex ×1
styles ×1
unit-testing ×1