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);
    });
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容