2017-08-06 72 views
0

您可以讓我知道如何使用jQuery Ajax獲取存儲在同一服務器上的ZIP文件?請注意,我不想下載文件 我需要通過結果,如果成功?通過API片斷這樣的,(這是用一個表格,從客戶端傳遞一個zip文件到request這裏是The Working Demo如何使用jQuery Ajax訪問服務器上的Zip文件 - 無需下載

request({ 
    url: portalUrl + '/sharing/rest/content/features/generate', 
    content: myContent, 
    form: dom.byId('uploadForm'), 
    handleAs: 'json', 
    load: lang.hitch(this, function (response) { 
    if (response.error) { 
     errorHandler(response.error); 
     return; 
    } 
    var layerName = response.featureCollection.layers[0].layerDefinition.name; 
     addShapefileToMap(response.featureCollection); 
    }), 
    error: lang.hitch(this, errorHandler) 
}); 

,但我需要通過從服務器上的zip文件不用其他使用形式和這裏我想這樣做

var data = "www.mydomain.com/GIS/App.ZIP"; 
request({ 
...., 
form: data, 
.... 
}); 

更新

由於menitoned API提供了FORMDATA選項以及但是怎麼我可以通過append方法裏面的第二個參數類型?

var theFile = "http://localhost/Portal/APP.ZIP"; 
var myFormData = new FormData(); 
myFormData.append(theFile, ?); 
+0

您可以將zip文件下載到ram中,然後將其發送到另一臺服務器。如果你需要解壓縮,你可以使用[zip.js](http://gildas-lormeau.github.io/zip.js/) – SpiderPig

+0

感謝您的評論,但如何?此外,我不想將其解壓縮,我只想傳遞給請求的表單選項 –

+0

它在[API文檔](https://developers.arcgis.com/javascript/3/jsapi/esri)中說過。 request-amd.html#esrirequest-request-form),你可以使用[FormData對象](https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects)。 – SpiderPig

回答

0

出於安全原因,如果沒有用戶干預,Javascript將無法訪問本地文件系統。用戶必須採取措施加載文件。否則,惡意網頁很容易遍歷文件系統。

您可以通過AJAX使用JavaScript來觸發服務器端腳本,該腳本可以訪問服務器文件系統並將結果返回給javascript。

+0

Thansk發表評論,但正如我在帖子中所說的那樣我需要的不是從客戶機加載!我需要傳遞坐在服務器上的zip文件。就像在ajax中引用URL一樣var data =「www.domain.com/GIS/App.ZIP」 –

相關問題