2014-04-27 172 views
0

刚开始使用谷歌脚本,似乎无法找到下载文件的解决方案。这里的问题:使用ashx从URL下载文件

  1. 运行在100多个网址的日常
  2. 每个URL的脚本是.ashx的是下载文件时自动
  3. 脚本包含下载文件,而不是文件类型应该是(的.xls)
  4. 唯一的解决方法是手动更改谷歌驱动器的文件扩展名,以正确看待它为.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 
} 

回答

0

没有一个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的文件,我可以做一些更多的测试...