suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Konvertieren Sie die Bild-URL in eine Dateiinstanz

<p>Ich habe ein Array von Bilddaten und versuche, es in eine <code>Datei</code>array</p> umzuwandeln. <pre class="brush:php;toolbar:false;">const images = [ { img: "http://localhost/images/1.jpg", Name: "1.png", mime_type: "image/jpeg" { img: "http://localhost/images/2.jpg", Name: "2.png", mime_type: "image/jpeg" ] const res: File[] = images.map(function (item) { gib eine neue Datei zurück([item.img], item.name, { type: item.mime_type }) })</pre> <p>Das funktioniert nicht :(So wie ich es verstehe, sollte das konvertierte Bild in base24 an den Dateikonstruktor übergeben werden? Wie mache ich das? </p> <p>Update: Ich habe eine VUE-Komponente, die Bilder verarbeitet. Die Eingabekomponente verfügt über eine Eigenschaft vom Typ Array. So erstellen Sie ein Array basierend auf den von der Datenbank zurückgegebenen Daten. Gibt aus der Datenbank zurück: Bildlink, Name und Typ. </p> <p>UPD2-Antwort: </p> <pre class="brush:php;toolbar:false;">let PhotosAsFile: File[] = [] const _photos = [ { url: "http://localhost:8080/images/1.jpeg", Name: "name1", mime_type: "image/jpeg" { url: "http://localhost:8080/images/2.jpeg", Name: "name2", mime_type: "image/jpeg" { url: "http://localhost:8080/images/3.jpeg", Name: "name3", mime_type: "image/jpeg" ] const data: Promise<File>[] = _photos.map(async function (item): Promise<File> { const myBlob: Blob = waiting getBlobFromUrl(item.url) const extensionsFile: RegExpMatchArray |. null |. undefiniert = item.url?.match(/.([^.]+)$/) return new File([myBlob], extensionsFile && item.name ? item.name + "." + extensionsFile[1] : "image.jpeg", { Typ: item.mime_type ?? "image/jpeg", }) }) Promise.all(data).then((values: File[]): void => { PhotosAsFile = Werte }) const getBlobFromUrl = (url): Promise<Blob> neues Versprechen zurückgeben((auflösen, ablehnen): void => { const-Anfrage: XMLHttpRequest = new XMLHttpRequest() request.open("GET", URL, true) request.responseType = "blob" request.onload = () => lösen(request.response) } request.onerror = ablehnen request.send() }) }</pre></p>
P粉121447292P粉121447292454 Tage vor598

Antworte allen(1)Ich werde antworten

  • P粉680087550

    P粉6800875502023-09-05 14:06:38

    要创建文件(我不确定您为什么需要它),您需要传入二进制数据

    https://developer.mozilla.org/en -US/docs/Web/API/File/File

    这是内存中的一个文件。您无法从磁盘读取它。您无法将其写入磁盘。我猜你可以将其设置为值并作为 FormData 发送。

    Antwort
    0
  • StornierenAntwort