2017-08-06 41 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” –

相关问题