使用ashx从URL下载文件
问题描述:
刚开始使用谷歌脚本,似乎无法找到下载文件的解决方案。这里的问题:使用ashx从URL下载文件
- 运行在100多个网址的日常
- 每个URL的脚本是.ashx的是下载文件时自动
- 脚本包含下载文件,而不是文件类型应该是(的.xls)
- 唯一的解决方法是手动更改谷歌驱动器的文件扩展名,以正确看待它为.xls
问题:反正是有文件从ashx的URL作为保存.xls而runn脚本?我完全可以做一些完全不同的事情,但需要能够下载这些文件为.xls。
感谢您的任何sugestions, 杰森
function getFileFromURL(fileURL, folder) {
var rc = 404;
var fileName = "";
var fileSize = 0;
try {
var response = UrlFetchApp.fetch("http://www.test.com/InventoryXLS?viewid=450");
var rc = response.getResponseCode();
} catch (e)
{
// fetch() does not handle unresolved DNS or file not found errors
// We'll treat all unhandled errors as "404 Not Found"
// This catch block simply suppresses the error
debugger;
}
if (rc == 200) {
var fileBlob = response.getBlob()
var folder = DocsList.getFolder("MyFolderNameinDrive");
if (folder != null) {
var file = folder.createFile(fileBlob);
fileName = file.getName();
fileSize = file.getSize();
}
}
var retObj = { "rc":rc, "fileName":fileName, "fileSize":fileSize };
debugger; // Stop to observe if in debugger
return retObj
}
答
没有一个ashx的文件本身的测试,我不知道这是否会工作,但几个星期前转换与应用程序文件的能力脚本已实施。 See number 15 on this issue.
然后,您可能不希望将该文件转换为Google表格。如果是这样,那就省略包含{convert: true}
的可选参数。希望这仍然能够正确设置文件的名称和mimeType。否则,我会删除这个答案,我们将重新开始!
所以,或许是这样的:
var file = {
title: 'Converted Spreadsheet',
mimeType: 'application/vnd.ms-excel'
};
file = Drive.Files.insert(file, fileBlob, {
convert: true
});
如果你可以分享一个ashx的文件,我可以做一些更多的测试...