use*_*894 5 html javascript form-data
我已经在formData中创建了一个文件,如下所示:
var fd = new FormData();
fd.append('file', file);
Run Code Online (Sandbox Code Playgroud)
如何从formData中获取内容?像文件名和文件?这样的事情?:fd.filename(), fd.getData(). 或者fd.get('file')检索文件?
在您将文件附加到我相信的 formData 对象后,无法检索这些文件。
您必须将 formData-object 发送到某个地方,然后从 req-object 或类似的东西中获取文件。
就我而言(angularJS + nodeJS),我从 SO 上的答案(下面的链接)中对此进行了测试:
角度:
var fd = new FormData();
fd.append('file', file);
$http({
method:"POST",
url:"uploadFile",
data: fd,
withCredentials: true,
headers: {'Content-Type': undefined },
transformRequest: angular.identity
});
Run Code Online (Sandbox Code Playgroud)
节点(expressJS):
app.post('/uploadFile', function(req,res){
fs.readFile(req.files.file.path, function(err, data){
// Do something with the data (which holds the file information)
});
});
Run Code Online (Sandbox Code Playgroud)
要查看您可以使用该文件做什么,请阅读以下内容:http : //nodejs.org/api/fs.html
代码摘自: AngularJS:如何用多部分形式实现一个简单的文件上传?
尝试:
var fd = new FormData();
fd.append('file', file);
Run Code Online (Sandbox Code Playgroud)
然后使用这个:
var newfile = fd.get('file');
console.log(newfile.name); //filename
console.log(newfile.size); //filesize
Run Code Online (Sandbox Code Playgroud)
或者对于数组来说:
for (var newfile of fd.getAll('file')){
console.log(newfile.name);
console.log(newfile.size);
}
Run Code Online (Sandbox Code Playgroud)
然后您可以将文件附加到另一个 FormData:
var newFormData = new FormData();
newFormData.append('file', newfile);
Run Code Online (Sandbox Code Playgroud)
如果您想从 FormData 获取所有数据,而不仅仅是文件,请使用 FormData.entries() :
for (var pair of fd.entries())
{
console.log(pair[0]+ ', '+ pair[1]); //property and value pairs
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20392 次 |
| 最近记录: |