2014-04-27 353 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的文件,我可以做一些更多的測試...