首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上传图片,上传后查看

上传图片,上传后查看
EN

Stack Overflow用户
提问于 2018-10-11 12:08:06
回答 1查看 158关注 0票数 2

我正在尝试上传一张Angular 5.2和Laravel 5.5的头像。我可以成功地将图像上传到本地存储中的单独文件夹。然后我想展示上传的图片,就像在facebook中一样。然后我可以查看上传的图像,但它不会上传到文件夹中。This is my current code.It通过在append,event下划线来显示错误。

代码语言:javascript
复制
 uploadFile(event) {
if (event.target.files.length > 0) {
  const reader = new FileReader();
  reader.append('myfile', elem.files[0]);
  reader.readAsDataURL(event.target.files[0]);
  reader.onload = (event) => {
    this.url = event.target.result;
  };
  this.fileService.sendFile(reader).subscribe(
        (response) => {
          console.log(response);
        });}
 }

可以上传到文件夹的代码在这里。

代码语言:javascript
复制
uploadFile(event){    
const elem = event.target;  
if(elem.files.length > 0){     
  const formData = new FormData();  
  formData.append('myfile', elem.files[0]);  
  this.fileService.sendFile(formData).subscribe( 
    (response) => {
console.log(response);
    }); }
elem.value = ""; 
}

服务文件

代码语言:javascript
复制
export class FileService {

constructor(private httpClient: HttpClient) { }

sendFile(formData: any) {
  const baseUrl = 'http://127.0.0.1:8000/api';
  const url = `${baseUrl}/file`;
  return this.httpClient.post(
  url,
  formData);
  }
 }

这是我在laravel中的文件控制器

代码语言:javascript
复制
<?php

 namespace App\Http\Controllers;
 use Illuminate\Http\Request;

 class FileController extends Controller
 {
  public function saveFile(Request $request){

    $File = $request -> file('myfile'); 
          $sub_path = 'files'; 
          $real_name = $File -> getClientOriginalName(); 

          $destination_path = public_path($sub_path);  

          $File->move($destination_path,  $real_name); 
          return response()->json('File Save');
         }
       }

使用下面的代码,我可以在打开图像后查看图像。

代码语言:javascript
复制
url = '';
onSelectFile(event) {
if (event.target.files && event.target.files[0]) {
  var reader = new FileReader();

  reader.readAsDataURL(event.target.files[0]); // read file as data url

  reader.onload = (event) => { // called once readAsDataURL is completed
    this.url = event.target.result;
  } 
 }
}
EN

回答 1

Stack Overflow用户

发布于 2018-10-11 12:42:53

我可以上传图片到本地存储的文件夹中,同时我可以使用以下代码查看它。但它仍然在结果上显示一个错误。我需要知道做这件事的正确方法。

错误结果:类型‘EventTarget’上不存在属性‘TS2339’。

代码在这里。

代码语言:javascript
复制
uploadFile(event) {
if (event.target.files.length > 0) {
  const reader = new FileReader();
  const formData = new FormData();
  formData.append('myfile', event.target.files[0]);
  reader.readAsDataURL(event.target.files[0]);
  reader.onload = (event) => {
    this.url = event.target.result;
  };
  this.fileService.sendFile(formData).subscribe(
        (response) => {
          console.log(response);
        });
}
event.target.value = '';
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52752054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档