我需要在Javascript中将dataURL转换为File对象,以便使用AJAX将其发送出去.可能吗?如果是,请告诉我如何.
我有两个base64用PNG编码,我需要使用Resemble.JS进行比较
我认为最好的方法是使用转换PNG为文件对象fileReader.我该怎么做?
在IE 8/9中不存在FormData,但我需要在这些浏览器中使用该功能.这有一个很好的后备吗?
我会尝试发送json数据,但我需要将文件传递给服务器.我将此文件附加到formData现代浏览器中,只需提交XHR请求即可.因为FormData在IE 8/9中不存在,这显然是失败的.
// I cant seem to get this to work with a file.
$.ajax({
url: '/genericHandlers/UploadDocsFile.ashx',
type: "POST",
data: model.toJSON(),
contentType: 'application/json'
}).done(function (data) {
log('stuff happened!');
});
Run Code Online (Sandbox Code Playgroud)
也许另一种方法是在js中创建一个假的表单对象然后将数据附加到那个?
我正在一个目录中加载几个文件来解析它们中的一些数据.这到目前为止工作得很好,但我想知道我正在看的文件.所以我需要加载后的文件名.有人可以提供帮助吗?
//获取dir中的所有文件
function updateData(){
var dirReader = approot.createReader();
var fail =failCB('Error - Directory for parsing failed to open'); // logs fail...
dirReader.readEntries(parseData,fail);
}
Run Code Online (Sandbox Code Playgroud)
//加载每个文件
function parseData(entries){
var i;
for (i=0; i<entries.length; i++) {
var reader = new FileReader();
reader.onloadend = createListItem;
reader.readAsText(entries[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
//这里我想知道这个名字!!!!
function createListItem(evt){
// it gives me all the loaded data. But based on wich file it was, i would like to handle it!
console.log(evt.target.result)
// lets say something like this
$('#content').find( file.name ).append(evt.target.result);
}
} …Run Code Online (Sandbox Code Playgroud) 当readAsText()完成功能结果存储在.result
如何查看读取的文件内容是否正确.result?
fr = new FileReader();
fr.readAsText(file);
var x = fr.result;
console.log(x); //does not display anything on console
Run Code Online (Sandbox Code Playgroud)
现在如何显示.result对象以验证内容?
可以将元素的.files属性设置为例如来自不同的元素属性或属性.请参阅Make .files settable#2866,将文件上传到HTML表单并提交之间会发生什么?.<input type="file">FileList<input type="file">.filesDataTransfer.files
FileList对象有一个Symbol.iterator属性,我们可以使用它来设置一个File可迭代的对象,但是.files .length仍然设置为0并传递一个<form>有<input type="file">用于.files使用上述方法设置的集合,产生一个设置为的File对象..size0
如何设置Fileat FileList和set设置.length的FileList文件数,文件在FormData()object 设置的位置?
const input = document.createElement("input");
const form = document.createElement("form");
const [...data] = [
new File(["a"], "a.txt")
, new File(["b"], "b.txt")
];
input.type = "file";
input.name = "files";
input.multiple = true;
// …Run Code Online (Sandbox Code Playgroud)我正在尝试理解HTML5 API.我正在设计Web应用程序,浏览器客户端需要从服务器下载多个文件; 用户将对下载的文件和应用程序执行某些操作,而不是需要在用户上保存状态.我知道浏览器只能将这些文件保存到它的沙盒中,只要用户可以在第二次启动应用程序时检索这些文件就可以了.我应该使用BlobBuilder还是FileSaver?我在这里有点失落.
我正在尝试使用WebSocket API上传大文件(至少500MB,最好是几GB).问题是我无法弄清楚如何编写"发送此文件的片段,释放使用的资源然后重复".我希望我可以避免使用像Flash/Silverlight这样的东西.
目前,我正在开展以下工作:
function FileSlicer(file) {
// randomly picked 1MB slices,
// I don't think this size is important for this experiment
this.sliceSize = 1024*1024;
this.slices = Math.ceil(file.size / this.sliceSize);
this.currentSlice = 0;
this.getNextSlice = function() {
var start = this.currentSlice * this.sliceSize;
var end = Math.min((this.currentSlice+1) * this.sliceSize, file.size);
++this.currentSlice;
return file.slice(start, end);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我会上传使用:
function Uploader(url, file) {
var fs = new FileSlicer(file);
var socket = new WebSocket(url);
socket.onopen = function() {
for(var i = 0; i …Run Code Online (Sandbox Code Playgroud) 我正在使用FileReader API来读取多个文件.
<html> <body>
<input type="file" id="filesx" name="filesx[]"
onchange="readmultifiles(this.files)" multiple=""/>
<div id="bag"><ul/></div>
<script>
window.onload = function() {
if (typeof window.FileReader !== 'function') {
alert("The file API isn't supported on this browser yet.");
}
}
function readmultifiles(files) {
var ul = document.querySelector("#bag>ul");
while (ul.hasChildNodes()) {
ul.removeChild(ul.firstChild);
}
function setup_reader(file) {
var name = file.name;
var reader = new FileReader();
reader.onload = function(e) {
var bin = e.target.result; //get file content
// do sth with text
var li = document.createElement("li");
li.innerHTML …Run Code Online (Sandbox Code Playgroud) var profileImage = fileInputInByteArray;
$.ajax({
url: 'abc.com/',
type: 'POST',
dataType: 'json',
data: {
// Other data
ProfileImage: profileimage
// Other data
},
success: {
}
})
// Code in WebAPI
[HttpPost]
public HttpResponseMessage UpdateProfile([FromUri]UpdateProfileModel response) {
//...
return response;
}
public class UpdateProfileModel {
// ...
public byte[] ProfileImage {get ;set; }
// ...
}Run Code Online (Sandbox Code Playgroud)
<input type="file" id="inputFile" />Run Code Online (Sandbox Code Playgroud)
我正在使用ajax调用将输入类型=文件输入的byte []值发布到以apip []格式接收的web api.但是,我遇到了获取字节数组的困难.我希望我们可以通过File API获取字节数组.
注意:在通过ajax调用之前,我需要先将字节数组存储在变量中
fileapi ×10
javascript ×9
html5 ×5
ajax ×1
android ×1
base64 ×1
blob ×1
cordova ×1
filelist ×1
filereader ×1
filesaver.js ×1
form-data ×1
html ×1
jquery ×1
large-files ×1
websocket ×1