Programim dhe zhvillim, javascript, python, php, html

Ruani imazhin lokal nga valëvitja e rrjetit

kodi flutter më poshtë kujdeset për rikuperimin e një imazhi nga një nyje mbështetëse.js ajo që duhet të bëj është ta ruaj imazhin në nivel lokal, në një rrugë specifike, por kur ekzekutoj kodin më poshtë kam gabimet e mëposhtme, si mund të bëj për ta zgjidhur kjo? Unë përdor cachemanager për të ruajtur imazhin në nivel lokal, por një nga gabimet është pikërisht në cachemanager, për çfarë shkaktohet kjo?

Gabim:

'Image' is imported from both       
'package:pdf/widgets.dart' and 'package:image/src/image.dart'.
import 'package:image/image.dart';                                      
^^^^^                                                                   
lib/Model/Supporto.dart:20:31: Error: The getter 'CacheManager' isn't defined for the
class 'SaveFile'.
 - 'SaveFile' is from 'package:MyApp/Model/Supporto.dart' ('lib/Model/Supporto.dart').
Try correcting the name to the name of an existing getter, or defining a getter or
field named 'CacheManager'.
     var cacheManager = await CacheManager.getInstance()

Kodi Dart:

    import 'dart:async';
    import 'package:pdf/widgets.dart';
    import 'package:MyApp/Controller/Rapporto.dart';
    import 'package:MyApp/Model/Cantiere.dart';
    import 'package:MyApp/Model/Supporto.dart';
    import 'package:MyApp/Model/Utente.dart' show Utente;
    import 'dart:io' as Io;
    import 'package:image/image.dart';

    import 'package:flutter_cache_manager/flutter_cache_manager.dart';
    import 'package:path_provider/path_provider.dart';

    //Classe che rapprresenta il rapporto
    class Rapporto {
      //Costruttore
      Rapporto(Utente u, Cantiere c) {
        this.utente = u;
        this.c = c;
      }

       //Funzione: permette di recuperare la testata del rapportino
       static Future<bool> getTestata() async{
         bool ret=false;
         String testata=await RapportoController.getTestata(); //http://localhost:8989/rapportini/immagine/testata
        if( testata!=null){
          if(testata.length>0){
             SaveFile sf=new SaveFile();
             final file = await sf.getImageFromNetwork(testata);
             //Recupero il path locale del dispositivo
             var path = await sf.localPath;
             Image image = decodeImage(file.readAsBytesSync());
             //Image thumbnail = copyResize(image, 120,120,);

        //Salvataggio immagine
        try{
          new Io.File('assets/temp/testata.jpg').writeAsBytesSync(encodePng(image));
           ret=true;
        }
        catch(ex){
          ret=false;
        }

          }
        } 
        return ret;
      }
    }

import 'dart:async';
import 'dart:io' as Io;
import 'package:image/image.dart';

import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:path_provider/path_provider.dart';

//Classe che si occupa del salvataggio dei file sul filesystem
class SaveFile {

  //Recupero del path locale
  Future<String> get localPath async {
    final directory = await getApplicationDocumentsDirectory();

    return directory.path;
  }
  //Recupero dell'immagine dalla rete
   Future<Io.File> getImageFromNetwork(String url) async {

     var cacheManager = await CacheManager.getInstance();
     Io.File file = await cacheManager.getFile(url);
     return file;
   }

}
18.05.2020

Përgjigjet:


1

Siç mund të shihet nga gabimi juaj, dy skedarët e mëposhtëm përmbajnë imazhe të së njëjtës klasë.

import 'package:image/image.dart';
import 'package:pdf/widgets.dart';

1) Mënyra më e lehtë për t'u zgjidhur është që nëse nuk keni nevojë për asnjë nga këto skedarë, atëherë hiqni atë dhe jeni gati të shkoni.

2) Nëse keni nevojë për të dy skedarët në këtë skedar, atëherë duhet të importoni skedarë duke përdorur aleatë, në mënyrë që të specifikoni se cilin objekt dëshironi të krijoni nga skedari while.

import 'package:image/image.dart' as i;
import 'package:pdf/widgets.dart' as p;

tani, kur dëshironi të krijoni objekt nga biblioteka e imazheve, atëherë krijoni mënyrën e mëposhtme njësoj si skedari pdf.

 i.classname variablename = i.classname();
18.05.2020

2

'Imazhi' importohet nga të dyja
'package:pdf/widgets.dart' dhe 'package:image/src/image.dart'. import 'paketë:image/image.dart';

Duket sikur të dyja këto paketa të importuara kanë një shembull të quajtur Image, përpiquni të përdorni hide për të injoruar shembullin e padëshiruar si ky:

import 'package:pdf/widgets.dart' hide Image;
18.05.2020
Materiale të reja

Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

Faketojeni derisa ta arrini me të dhënat false
A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

Si të përdorni kërkesën API në Python
Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

Një udhëzues hap pas hapi për të zotëruar React
Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

AI dhe Psikologjia — Pjesa 2
Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

Esencialet e punës ditore të kodit tim VS
Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..