使用 laravel 和 Angular 4 问题通过 API 在数据库中保存文件
Posted
技术标签:
【中文标题】使用 laravel 和 Angular 4 问题通过 API 在数据库中保存文件【英文标题】:Saving file via API in database using laravel and angular 4 issue 【发布时间】:2018-08-18 19:12:57 【问题描述】:我有 2 个问题... 1.当我在saveAttachment()方法中发送文件请求时为空([])。 2. 我的程序可以将文件保存为数据库中的二进制文件吗?
Laravel 迁移:
class CreateAttachmentsTable extends Migration
public function up()
Schema::create('attachments', function (Blueprint $table)
$table->uuid('id')->primary();
$table->binary('content');
);
Laravel 控制器:
public function saveAttachment(Request $request)
if ($request->file)
$attachment = new Attachment();
$attachment->content = $request->file;
$attachment->save();
角度组件:
onFileChange(event)
if (event.target.files.length > 0)
this.service.saveAttachment(event.target.files[0]).subscribe();
角度服务:
saveAttachment(file: File)
return this.http.post(USER_API_URL + '/saveAttachment, file: file );
谢谢。
【问题讨论】:
【参考方案1】:我找到了一个解决方案,但它可能不是最好的......
Laravel 迁移:
class CreateAttachmentsTable extends Migration
public function up()
Schema::create('attachments', function (Blueprint $table)
$table->binary('content');
);
Laravel 控制器:
public function upload(Request $request)
$file = new File();
$file->content = $request->fileContent;
$file->save();
角度组件:
onFileChange(event)
if (event.target.files.length > 0)
const reader = new FileReader();
reader.onload = (e) =>
this.fileService.upload(reader.result).subscribe();
;
reader.readAsDataURL(event.target.files[0]);
角度服务:
saveAttachment(fileContent: File)
return this.http.post(API_URL + '/upload, fileContent: file );
【讨论】:
以上是关于使用 laravel 和 Angular 4 问题通过 API 在数据库中保存文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 laravel 和 Angular 4 问题通过 API 在数据库中保存文件
如何将 Laravel 5.4 与 Angular 4 集成
Laravel 4 和 Angular JS 和 Twitter Bootstrap 3 分页