我有模块以Angular 7反应形式上传文件(我需要反应形式,因为我需要一起上传文件和其他一些信息)
我关注这篇文章:https://medium.com/@amcdnl/file-uploads-with-angular-reactive-forms-960fd0b34cb5
代码如下:https://pastebin.com/qsbPiJEX
onFileChange(event) {
const reader = new FileReader();
if(event.target.files && event.target.files.length) {
const [file] = event.target.files;
reader.readAsDataURL(file);
reader.onload = () => {
this.formGroup.patchValue({
file: reader.result
});
// need to run CD since file load runs outside of zone
this.cd.markForCheck();
};
}
}
据我所知,我将在json数据中以文本形式接收文件。 但是我不知道如何将其作为文件接收或将json数据转换为文件。该文件可以是图片,pdf或其他文档(excel,文档或其他格式)
我正在使用Dotnet Core 2.2和Angular 7 知道如何接收文件吗?
答案 0 :(得分:1)
我有一个要通过formData发布图像的表单,仅通过放置此属性<div class="container">
<div class="row">
<div class="col-md-4">
</div>
<div class="col-md-4">
//insert your div code to center
<form>
<div class="form-group row">
<label for="staticEmail" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="text" readonly class="form-control-plaintext"
id="staticEmail" value="email@example.com">
</div>
</div>
<div class="form-group row">
<label for="inputPassword" class="col-sm-2 col-form-
label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword"
placeholder="Password">
</div>
</div>
</form>
<!-- a bootstrap col has 12 that's why am divide col by 4 to
center 4+4+4 = 12 -->
</div>
<div class="col-md-4">
</div>
</div>
</div>
就可以在FormControl中获得文件对象。这可以将FormControl中的FileList对象作为值写入。为此,您需要安装'@ rxweb / reactive-form-validators'软件包并注册'RxReactiveFormsModule'模块。就是这样。
这是我的html代码:
writeFile="true"
请参考以下示例:Stackblitz
答案 1 :(得分:0)
我们正在请求的请求正文中发送文件,因此我们可以使用以下代码在请求中获取文件。因此我们可以使用以下代码访问请求中的文件
using System.IO;
var filelocation = Path.GetTempFileName();
foreach (var FileData in Request.Form.Files)
{
if (FileData.Length > 0)
{
using (var inputStream = new FileStream(filelocation , FileMode.Create))
{
// read file to stream
await FileData.CopyToAsync(inputStream);
// stream to byte array
byte[] array = new byte[inputStream.Length];
inputStream.Seek(0, SeekOrigin.Begin);
inputStream.Read(array, 0, array.Length);
// get file name
string fName = formFile.FileName;
}
}
}