Rumah  >  Soal Jawab  >  teks badan

Tukar URL imej kepada contoh Fail

<p>Saya mempunyai tatasusunan data imej dan sedang cuba menukarnya kepada <kod>fail</code>array</p> <pre class="brush:php;toolbar:false;">imej const = [ { img: "http://localhost/images/1.jpg", nama: "1.png", mime_type: "image/jpeg" { img: "http://localhost/images/2.jpg", nama: "2.png", mime_type: "image/jpeg" ] const res: Fail[] = images.map(fungsi (item) { kembalikan Fail baharu([item.img], item.name, { type: item.mime_type }) })</pre> <p>Ini tidak berfungsi :(Seperti yang saya fahami, imej yang ditukar dalam base24 harus dihantar kepada pembina fail? Bagaimanakah caranya? </p> <p>Kemas kini: Saya mempunyai komponen VUE yang mengendalikan imej. Komponen input mempunyai sifat tatasusunan jenis. Cara membuat tatasusunan berdasarkan data yang dikembalikan oleh pangkalan data. Pulangan daripada pangkalan data: pautan imej, nama dan jenis. </p> <p>Jawapan UPD2: </p> <pre class="brush:php;toolbar:false;">biarkan PhotosAsFile: File[] = [] const _photos = [ { url: "http://localhost:8080/images/1.jpeg", nama: "nama1", jenis_mime: "imej/jpeg" { url: "http://localhost:8080/images/2.jpeg", nama: "nama2", jenis_mime: "imej/jpeg" { url: "http://localhost:8080/images/3.jpeg", nama: "name3", mime_type: "image/jpeg" ] data const: Janji<Fail>[] = _photos.map(fungsi tak segerak (item): Janji<Fail> { const myBlob: Blob = menunggu getBlobFromUrl(item.url) const extensionsFile: RegExpMatchArray |. undefined = item.url?.match(/.([^.]+)$/) kembalikan Fail baharu([myBlob], sambunganFail && nama item ? nama item + "." + sambunganFail[1] : "imej.jpeg", { jenis: item.mime_type ?? "image/jpeg", }) }) Promise.all(data).then((values: File[]): void => { PhotosAsFile = nilai }) const getBlobFromUrl = (url): Janji<Blob> kembalikan Janji baharu((selesaikan, tolak): batal => { permintaan const: XMLHttpRequest = XMLHttpRequest() baharu request.open("GET", url, true) request.responseType = "gumpalan" request.onload = () => menyelesaikan(permintaan.tindak balas) } request.onerror = tolak request.send() }) }</pre></p>
P粉121447292P粉121447292411 hari yang lalu553

membalas semua(1)saya akan balas

  • P粉680087550

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

    Untuk mencipta 文件 (Saya tidak pasti mengapa anda memerlukannya) anda perlu memasukkan data binari

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

    Ini ialah fail dalam ingatan. Anda tidak boleh membacanya dari cakera. Anda tidak boleh menulisnya ke cakera. Saya rasa anda boleh menetapkannya kepada nilai dan menghantarnya sebagai FormData.

    balas
    0
  • Batalbalas