首页 文章

上传图片并上传后查看

提问于
浏览
2

我正在尝试上传Angular 5.2和Laravel 5.5中的 Profiles 图片 . 我能够将图像成功上传到本地存储中的单独文件夹 . 然后我想显示与facebook相同的上传图片 . 然后我可以查看上传的图像,但不会上传到该文件夹 . 这是我当前的代码 . 它通过下划线追加,事件来显示错误 .

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);
        });}
 }

可以使用laravel代码上传到文件夹的代码在这里 .

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 = ""; 
}

服务文件

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中的文件控制器

<?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');
         }
       }

使用波纹管代码我可以在打开图像后查看图像 .

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;
  } 
 }
}

1 回答

  • 1

    我能够将图像上传到本地存储中的文件夹,同时我可以使用以下代码查看它 . 但它仍然显示结果错误 . 我需要知道这样做的正确方法 .

    错误TS2339:类型'EventTarget'上不存在属性'result' .

    代码就在这里 .

    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 = '';
    }
    

相关问题