我试着打开文件
window.open("file:///D:/Hello.txt");
Run Code Online (Sandbox Code Playgroud)
浏览器不允许以这种方式打开本地文件,可能是出于安全原因.我想在客户端使用该文件的数据.如何在Javascript中读取本地文件?
在base64编码中填充的目的是什么.以下是维基百科的摘录:
"分配了一个额外的填充字符,可用于强制编码输出为4个字符的整数倍(或等效于未编码的二进制文本不是3个字节的倍数);这些填充字符必须在解码时丢弃,但仍然允许计算未编码文本的有效长度,当其输入二进制长度不是3个字节的倍数时(最后一个非填充字符通常被编码,使得它代表的最后一个6位块将为零在其最低有效位上填充,在编码流的末尾最多可能出现两个填充字符."
我写了一个程序,它可以base64编码任何字符串并解码任何base64编码的字符串.填充解决了什么问题?
我对以下内容感兴趣:
是否有一个字符列表永远不会作为base 64编码字符串的一部分出现?
例如*.我不确定这是否会发生.如果原始输入实际上*是其中的一部分,那么编码方式会不同吗?
我有以下HTML代码:
<input type='file' multiple>
Run Code Online (Sandbox Code Playgroud)
这是我的JS代码:
var inputFiles = document.getElementsByTagName("input")[0];
inputFiles.onchange = function(){
var fr = new FileReader();
for(var i = 0; i < inputFiles.files.length; i++){
fr.onload = function(){
console.log(i) // Prints "0, 3, 2, 1" in case of 4 chosen files
}
}
fr.readAsDataURL(inputFiles.files[i]);
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如何使这个循环同步?首先等待文件完成加载然后转到下一个文件.有人告诉我使用__CODE__.但我不能让它发挥作用.这是我正在尝试的:
var inputFiles = document.getElementsByTagName("input")[0];
inputFiles.onchange = function(){
for(var i = 0; i < inputFiles.files.length; i++){
var fr = new FileReader();
var test = new Promise(function(resolve, reject){
console.log(i) // Prints 0, …Run Code Online (Sandbox Code Playgroud) 将图像转换为角度为2的base64,图像从本地上传.当前我正在使用fileLoadedEvent.target.result.问题是,当我通过REST服务将此base64字符串发送到java时,它无法对其进行解码.当我尝试这个base64字符串与免费在线编码器解码器,我也看不到解码图像.我也试过用画布.没有得到正确的结果.有一件事是肯定base64字符串得到的是不正确的,我需要为此添加任何包吗?或者在角度2中,有任何特定的方式将图像编码为base64,就像在角度1 - angular-base64-upload包中一样.
请在我的示例代码下面找到
onFileChangeEncodeImageFileAsURL(event:any,imgLogoUpload:any,imageForLogo:any,imageDiv:any)
{
var filesSelected = imgLogoUpload.files;
var self = this;
if (filesSelected.length > 0) {
var fileToLoad = filesSelected[0];
//Reading Image file, encode and display
var reader: FileReader = new FileReader();
reader.onloadend = function(fileLoadedEvent:any) {
//SECOND METHO
var imgSrcData = fileLoadedEvent.target.result; // <--- data: base64
var newImage = imageForLogo;
newImage.src = imgSrcData;
imageDiv.innerHTML = newImage.outerHTML;
}
reader.readAsDataURL(fileToLoad);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用远程seleniumwebdriver执行一些测试.但是,在某些时候,我需要下载一个文件并检查其内容.
我使用远程webdriver如下(in python):
PROXY = ...
prefs = {
"profile.default_content_settings.popups":0,
"download.prompt_for_download": "false",
"download.default_directory": os.getcwd(),
}
chrome_options = Options()
chrome_options.add_argument("--disable-extensions")
chrome_options.add_experimental_option("prefs", prefs)
webdriver.DesiredCapabilities.CHROME['proxy'] = {
"httpProxy":PROXY,
"ftpProxy":PROXY,
"sslProxy":PROXY,
"noProxy":None,
"proxyType":"MANUAL",
"class":"org.openqa.selenium.Proxy",
"autodetect":False
}
driver = webdriver.Remote(
command_executor='http://aaa.bbb.ccc:4444/wd/hub',
desired_capabilities=DesiredCapabilities.CHROME)
Run Code Online (Sandbox Code Playgroud)
使用"普通"webdriver,我可以在本地计算机上下载文件而不会出现问题.然后我可以使用测试代码来验证下载文件的内容(可以根据测试参数进行更改).它不是对下载本身的测试,但我需要一种方法来验证生成的文件的内容 ......
但是如何使用远程 webdriver 做到这一点?我在任何地方都找不到任何帮助......
这将base64输出到控制台:
function getBase64(file) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function() {
console.log(reader.result);
};
reader.onerror = function(error) {
console.log('Error: ', error);
};
}
var file = document.querySelector('#files > input[type="file"]').files[0];
getBase64(file); // prints the base64 string
Run Code Online (Sandbox Code Playgroud)
资料来源: https ://stackoverflow.com/a/36281449/1063287
jsFiddle: 上面工作代码的jsFiddle演示
我希望能够将base64分配给变量,所以我根据这个答案尝试了以下内容:
function getBase64(file, onLoadCallback) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = onLoadCallback;
reader.onerror = function(error) {
console.log('Error when converting PDF file to base64: ', error);
};
}
var my_pdf_file = document.querySelector("#my_pdf_file").files[0];
var my_pdf_file_as_base64 …Run Code Online (Sandbox Code Playgroud) 有没有办法使用ASMX Web服务将文件从本地文件系统上传到服务器中的文件夹(没有WCF,不要问为什么:)?
UPD
PSfile大小可以是2-10 GB
如何在TinyMCE编辑器中添加自定义/默认按钮,以便能够选择本地图像并将其作为RAW(BASE64)图像插入编辑器中的当前位置?
我是Angular的新手.我正在使用Angular 4.其中需要将base64 Image作为模型成员之一发送到web api.是否有一个Angular组件或指令将base64绑定到所述模型?
感谢并感谢您的帮助.
我有一个这样的组件
<input type="file" multiple @change="toBase64Handler($event)">
<script>
data() {
return {
files: [],
}
},
methods: {
tobase64Handler(event) {
// the code
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
我想将所有选定的文件转换为 Base64 字符串,如下所示:
files: [
{
selectedFile: 'ajsdgfauywdljasvdajsgvdasdo1u2ydfouayvsdlj2vo8ayasd...'
},
{
selectedFile: 'askdhgoiydvywdljasvdajsgvdasdo1u2ydfoakjgsfdjagswsd...'
},
{
selectedFile: '12edashjvlsljasvdajsgvdasdo1u2ydfouayvsdlj2vo8ayfsd...'
},
]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
base64 ×5
javascript ×5
angular ×2
filereader ×2
java ×2
.net ×1
asmx ×1
c# ×1
components ×1
directive ×1
encoding ×1
jquery ×1
promise ×1
regex ×1
selenium ×1
synchronous ×1
tinymce ×1
typescript ×1
upload ×1
vue.js ×1
vuejs2 ×1
web-services ×1