2017-08-06 17 views
0

jquery Ajaxを使用して同じサーバーにZIPファイルを格納する方法を教えてください。ファイルをダウンロードしたくないという通知を受けてください。 成功した場合、結果を渡す必要がありますか?このようなAPIスニペットに、(これはここでrequestにクライアントからzipファイルを渡すためにフォームを使用していることThe Working DemoJQuery 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) 
}); 

ですが、私は、フォームを使用してwitoutサーバからzipファイルを渡す必要があるとここにあります私がやりたいものを

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

更新

menitoned APIも同様FORMDATAオプションを提供していますとしてではなく、どのように私appendメソッドの中で型の2番目のパラメータを渡すことができますか?

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がセキュリティ上の理由により、ユーザーの介入なしにローカルファイルシステムにアクセスすることはできません。ユーザーは、ファイルをロードするためのアクションを実行する必要があります。そうしないと、悪意のあるWebページがファイルシステムを通過するのは非常に簡単です。

AJAX経由でjavascriptを使用すると、サーバー側のスクリプトを起動してサーバーファイルシステムにアクセスし、結果をjavascriptに返すことができます。

+0

Thanskのコメントですが、私が記事で言ったように私はクライアントマシンから読み込まないことが必要です!私はサーバー上に座っているzipファイルを渡す必要があります。 ajax呼び出しでのURLへの参照のようなものvar data = "www.domain.com/GIS/App.ZIP" –