Tukar URL imej kepada contoh Fail
P粉121447292
2023-09-04 14:58:36
<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>
Untuk mencipta
文件
(Saya tidak pasti mengapa anda memerlukannya) anda perlu memasukkan data binarihttps://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.