当用户按下ctrl + s按键但Chrome崩溃时,我正在尝试将我的HTML文件保存在Chrome中.
(我只想下载我的HTML文件的源代码)
我读到它发生是因为我的文件大于1.99M ..
在第一次尝试中(在我知道Chrome崩溃之前):
function download(filename, text) {
var pom = document.createElement('a');
pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
pom.setAttribute('download', filename);
pom.click();
}
download('test.html', "<html>" + document.getElementsByTagName('html')[0].innerHTML + "</html>");
Run Code Online (Sandbox Code Playgroud)
在我读到关于崩溃的第二次尝试之后,我使用了blob:
function dataURItoBlob(dataURI) {
var byteString = atob(dataURI.split(',')[1]);
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
var bb = new BlobBuilder();
bb.append(ab);
return bb.getBlob(mimeString);
}
function download(dataURI) …Run Code Online (Sandbox Code Playgroud) 我现在正在调试这个ajax很长一段时间.我在我的jQUery文件中有这个:
$("#typeForm").ajaxForm({
success : function(html){
alert(html);
}).submit();
Run Code Online (Sandbox Code Playgroud)
这会调用service.php,在其中我有这个:
$data = array('upload_data' => $this->upload->data());
$str = "<div style='position:relative'><img src='/assets/ui/success.png' /><span style='position:relative;top:-15px;'>Nachricht empfangen!</span></div>";
echo json_encode(array('file_name' => $data['upload_data']['file_name'], 'prompt' => $str));
Run Code Online (Sandbox Code Playgroud)
这不行.但通过更换$str到$str = "HELLO WORLD";了jQuery提醒我应该怎么期待.什么似乎是问题?
编辑:
这是输出的屏幕:

它会发出警报,但如果我将jQuery修改为:
$("#typeForm").ajaxForm({
success : function(html){
var obj = $.parseJSON(html);
alert(obj);
}).submit();
Run Code Online (Sandbox Code Playgroud)
然后它什么都不做,甚至提醒.
我做了一个var_dump json_encode,这里是转储,它看起来像一个格式错误的JSON:
string(214) "{"file_name":"cde595988d386529909ce5a8fe3a6d6f.png","prompt":"<div style="position:relative;"><img src="\/assets\/ui\/success.png" \=""><span style="position:relative;top:-15px;">Nachricht empfangen!<\/span><\/div>"}"
</span></div>
Run Code Online (Sandbox Code Playgroud)
这是service.php的完整内容
class Service extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index() …Run Code Online (Sandbox Code Playgroud) 我目前正在研究一个显示由C++服务器发送的图像的WebSocket应用程序.我在那里看到了几个主题,但我似乎无法在Firefox中摆脱这个错误:
图像损坏或截断:data:image/png; base64,[some data]
这是我用来显示我的blob的Javascript代码:
socket.onmessage = function(msg) {
var blob = msg.data;
var reader = new FileReader();
reader.onloadend = function() {
var string = reader.result;
var buffer = Base64.encode(string);
var data = "data:image/png;base64,"+buffer;
var image = document.getElementById('image');
image.src = data;
};
reader.readAsBinaryString(blob);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用我在这个主题上找到的红点图片:https://stackoverflow.com/a/4478878/1464608 而Base64类来自这里:https://stackoverflow.com/a/246813/ 1464608
但我获得的base64结果不匹配,Firefox检索到图像被损坏的错误.
我知道这不是很多信息,但我不知道在哪里看:/任何帮助都非常受欢迎!
我正在使用该window.atob('string')函数将字符串从base64解码为字符串.现在我想知道,有没有办法检查'string'实际上是否有效base64?如果字符串不是base64,我希望收到通知,以便我可以执行不同的操作.
我试图加载一个图像客户端和base64编码服务器返回的字节,以传递它来执行一些处理.IE具有XMLHttpRequest对象的RequestBody属性,但我似乎无法使用它,并且RequestText被截断.在Firefox中,RequestText存在,但似乎已损坏.
我想形成一个带有两个字段mimetype和value的JSON.值字段应该以字节数组作为其值.
{
"mimetype":"text/plain",
"value":"dasdsaAssadsadasd212sadasd"//this value is of type byte[]
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能完成这项任务?
截至目前,我正在使用toString()方法将字节数组转换为String并形成JSON.
JavaScript中是否有JSON编码/解码base64编码/解码功能?
我正在尝试在网站上实现一个简单的脚本,该脚本将从google的ajax API返回base64编码信息.这就是我到目前为止所玩的:
<html>
<head>
<script src="http://www.google.com/jsapi?key=ABQIAAAA0duujonFsEX871htGWZBHRS76H0qhS7Lb-D1Gd0Mnaiuid8Z7BQIyz2kMpojKizoyiCQA4yRkKAKug" type="text/javascript"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
var location = 'Unable to determine your location.';
if (google.loader.ClientLocation) {
var loc = google.loader.ClientLocation;
location = 'Country: <strong>' + loc.address.country + '</strong>, Region: <strong>' + loc.address.region + '</strong>, City: <strong>' +
loc.address.city + '</strong>, Lat/Long: <strong>' + loc.latitude + ', ' + loc.longitude + '</strong>';
}
jQuery('.geolocation').html(location);
});
</script>
</head>
<body>
<span class="geolocation"></span>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
它返回我正在尝试正确的信息,但我需要base64编码单独的部分,如国家,地区,城市,纬度和经度.在PHP中它会很简单,但我无法弄清楚如何在javascript中做到这一点.任何帮助,将不胜感激.
此问题与旧浏览器中的如何更新(与Safari 5.1.4相关)有关并受其启发
给定一个<input type="file">具有元件files包含属性File从继承的对象Blob,是有可能创造一个ArrayBuffer和转换ArrayBuffer到一个data URI从一个Blob或File对象,而无需使用FileReader?
到目前为止已尝试过方法
WebSocket使用.binaryTypeset 创建一个mock "arraybuffer",创建一个MessageEventwith event.dataset to Fileobject; 结果是处理程序的File对象onmessage
设置原型File为ArrayBuffer,Uint8Array; 结果是Uncaught TypeError: Method ArrayBuffer.prototype.byteLength called on incompatible receiver #<ArrayBuffer>(),Uncaught TypeError: Method get TypedArray.prototype.byteLength called on incompatible receiver [object Object]()
设置File在 …
我一直很难完成一项非常正常的任务.我将图像上传并保存到我的Web服务器并将路径保存到MySQL数据库中的文件(这一切都正常).不起作用的是从服务器获取图像文件并通过ajax在页面上显示它.
最初我试图从数据库中检索路径,并src使用图像路径更新标记的属性.这是有效的,但这样所有图像都在服务器上的文件夹中,人们都可以访问它们.这个不好.我只能拥有这些用户可以访问的某些用户的图片.
为了限制对这些照片的访问,我在该文件夹上添加了一个Apache指令,该指令成功地限制了访问.然后问题变成了我无法通过将src属性设置为该路径来在浏览器中显示图像.请参阅我的帖子:https://serverfault.com/questions/425974/apache-deny-access-to-images-folder-but-still-able-to-display-via-img-on-site
最后我了解到我必须使用PHP直接从服务器读取图像数据并将此数据发送到浏览器.我使用了file_get_contents()函数,该函数用于将服务器上的图像文件(PNG)转换为字符串.我在ajax调用中将此字符串返回给浏览器.我无法得到的是: 如何使用JavaScript将此字符串转换回图像?
看到这段代码:
$.ajax({
url: get_image.php,
success: function(image_string){
//how to load this image string from file_get_contents to the browser??
}
});
Run Code Online (Sandbox Code Playgroud) javascript ×8
base64 ×3
json ×3
ajax ×2
blob ×2
image ×2
jquery ×2
php ×2
data-uri ×1
fileapi ×1
filereader ×1
geolocation ×1
html ×1
html5 ×1
jackson ×1
png ×1
typed-arrays ×1
websocket ×1