在 HTML/jQuery 中,如何使用输入 id 作为参数将 POST 文件分块发送到服务器?
How do you POST files in chunks, to server, using input id as param, in HTML/jQuery?
描述
我有一个函数,它采用 HTTP_POST 路径 用于服务器端硬编码 .js 处理程序和 来自输入的文件 ID[type=file]。我正在尝试 POST binary 文件到服务器,但没有成功。
你试过什么?
利用我的 uncle 智慧,我注意到有一种方法可以使用 :
对文件进行切片
var File1 = document.querySelector('input').files[0].slice(0,7);
但是将此变量传递给函数不是一个选项,因为它需要 id ="file_1"
作为来自 <input type="file">
[= 的参数44=]。此外,打印此变量不适用于 console.log
(你们中的一半人已经在考虑将我送回 uni) 提示:我从未研究过 Javascript.于是我用力戳了一下叔叔,发现it。 FileReader 使您能够真正阅读内部内容,这给了我希望,因为我的文件被打印到 console.log
var reader = new FileReader;
reader.readAsBinaryString(File1);
reader.onload = function(e) {
var rawLog = reader.result;
console.log(rawLog);
};
此时 console.log
打印了我文件的前七个字节。通过所有这些,我们得到了我想问的问题
问题 ?¿
如何像 input
一样将此打印件传递给函数以便我可以将此文件切片并保存?
您可以分割文件的一部分,使用该部分创建一个 File 对象,将其添加到 FileList,然后用包含新文件的输入覆盖 FileList
var input = document.querySelector('input');
var originalfile = input.files[0];
var slice = originalfile.slice(0,7); // slice the file
var newfile = new File([slice] , 'slicedfile.dat'); // create new file
// Need to use a data transfer object to get a new FileList object
var datTran = new ClipboardEvent('').clipboardData || new DataTransfer();
datTran.items.add(newfile); // Add the file to the DT object
input.files = datTran.files; // overwrite the input file list with ours
// call function that takes path and id as parameters
描述
我有一个函数,它采用 HTTP_POST 路径 用于服务器端硬编码 .js 处理程序和 来自输入的文件 ID[type=file]。我正在尝试 POST binary 文件到服务器,但没有成功。
你试过什么?
利用我的 uncle 智慧,我注意到有一种方法可以使用 :
对文件进行切片var File1 = document.querySelector('input').files[0].slice(0,7);
但是将此变量传递给函数不是一个选项,因为它需要 id ="file_1"
作为来自 <input type="file">
[= 的参数44=]。此外,打印此变量不适用于 console.log
(你们中的一半人已经在考虑将我送回 uni) 提示:我从未研究过 Javascript.于是我用力戳了一下叔叔,发现it。 FileReader 使您能够真正阅读内部内容,这给了我希望,因为我的文件被打印到 console.log
var reader = new FileReader;
reader.readAsBinaryString(File1);
reader.onload = function(e) {
var rawLog = reader.result;
console.log(rawLog);
};
此时 console.log
打印了我文件的前七个字节。通过所有这些,我们得到了我想问的问题
问题 ?¿
如何像 input
一样将此打印件传递给函数以便我可以将此文件切片并保存?
您可以分割文件的一部分,使用该部分创建一个 File 对象,将其添加到 FileList,然后用包含新文件的输入覆盖 FileList
var input = document.querySelector('input');
var originalfile = input.files[0];
var slice = originalfile.slice(0,7); // slice the file
var newfile = new File([slice] , 'slicedfile.dat'); // create new file
// Need to use a data transfer object to get a new FileList object
var datTran = new ClipboardEvent('').clipboardData || new DataTransfer();
datTran.items.add(newfile); // Add the file to the DT object
input.files = datTran.files; // overwrite the input file list with ours
// call function that takes path and id as parameters