JavaScript 將在線URL文檔轉換為File對象

1. 解析URL并獲取文件內容:

首先,需要從URL獲取文件內容。這通常涉及到HTTP請求,可以使用fetch API來實現。以下函數,用于從URL獲取Blob對象:

async function fetchBlobFromURL(url) {
    const response = await fetch(url);
    if (!response.ok) {
        throw new Error(`HTTP error! status: ${response.status}`);
    }
    const blob = await response.blob();
    return blob;
}

2.創建File對象:

在獲取到Blob對象后,可以基于這個Blob對象來創建File對象。File對象實際上是Blob的一個子類,因此Blob對象可以很容易地轉換為File對象。以下函數,用于將Blob對象轉換為File對象:

function blobToFile(blob, fileName) {
    return new File([blob], fileName, { type: blob.type, lastModified: Date.now() });
}

3.綜合使用:

將上述兩個步驟結合起來,實現從URL到File對象的完整轉換。

async function urlToFile(url, fileName) {
    try {
        const blob = await fetchBlobFromURL(url);
        const file = blobToFile(blob, fileName);
        return file;
    } catch (error) {
        console.error('Error converting URL to File:', error);
        throw error;
    }
}

// 使用示例
urlToFile('https://example.com/path/to/your/file.pdf', 'downloaded_file.pdf')
    .then(file => {
        console.log('File created:', file);
    })
    .catch(error => {
        console.error('Error:', error);
    });
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容