举个例子,假设video我的网站上有一个具有以下属性的对象:
<video controls="" preload="auto" id="_video"></video>
Run Code Online (Sandbox Code Playgroud)
和原始来源./video/video.mp4(例如).
如何通过将原始源文件转换为BLOB URL来保护原始源文件?
我已经看到一些帖子说它需要通过JavaScript完成,但是它们都没有实际解释如何去做,或者你可以找到的地方.
那么,你会怎么做呢; 这样做的最佳方式是什么?
我不是最好的JavaScript,所以如果它看起来像一个明显的问题,请道歉.
谢谢.:-)
我的网站需要以下功能。一切都必须在客户端(javascript 或任何 javascript 库)上完成。
我的本地计算机中有一个图像,将其拖放到浏览器中。在没有向服务器发出任何请求的情况下,JavaScript 必须将此图像转换为 Base64。
我有一个在客户端将图像转换为 base64 的代码,但这需要 HTTP URL。我需要的是,图像需要从本地上传。
function toDataURL(url, callback) {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
var reader = new FileReader();
reader.onloadend = function() {
callback(reader.result);
}
reader.readAsDataURL(xhr.response);
};
xhr.open('GET', url);
xhr.responseType = 'blob';
xhr.send();
}
toDataURL('https://www.gravatar.com/avatar/d50c83cc0c6523b4d3f6085295c953e0', function(dataUrl) {
console.log('RESULT:', dataUrl)
})
Run Code Online (Sandbox Code Playgroud) 如何将本地(文件系统)URI转换为路径?
它可以用nsIIOService+ newURI()+ QueryInterface(Components.interfaces.nsIFileURL)+ 完成,file.path但这看起来很长.
有更短的方式吗?
这是一个示例代码:
var aFileURL = 'file:///C:/path-to-local-file/root.png';
var ios = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
var url = ios.newURI(aFileURL, null, null); // url is a nsIURI
// file is a nsIFile
var file = url.QueryInterface(Components.interfaces.nsIFileURL).file;
console.log(file.path); // "C:\path-to-local-file\root.png"
Run Code Online (Sandbox Code Playgroud)