2017-09-08 5 views
0

サイトURLダウンロードとして

ターゲットをフォームメソッドからドキュメントのパスを見つける方法:ドキュメントのパスを知って

スクリプティング:Jscriptのフォームをポストします。

javascript:downloadFile('12767'); 

    function downloadFile(fileNbr, itemNbr) { 
    document.forms[0].action = "/bso/external/bidDetail.sdo"; 
    document.forms[0].downloadFileNbr.value=fileNbr; 
    document.forms[0].itemNbr.value=itemNbr; 
    document.forms[0].mode.value="download"; 
    document.forms[0].submit(); 
    } 

目的はドキュメントの実際のパスをスクラップすることです。

+0

あなたは 'document.location'を意味しますか? 'protocol'、' host'、 'origin'などがあります。 – Adelin

+0

はい、文書の場所が非表示になっているか、非表示になっています。私は文書をダウンロードする代わりに実際の場所を持っていたい。 –

+0

'document.forms [0] .baseURI'についてはどうですか? – Adelin

答えて

1

最高の結果を得るには、ページでダウンロードリクエストを行い、ブラウザのネットワークタブを見て、ダウンロードリクエストURLとその内容を確認します。例えばそれは非常にAもありPOSTリクエストですので、あなたが与えたそのページにある「17/0244添付ファイル」リンクのために、そして、(フォームの送信downloadFile JSの方法によって生成された)をダウンロードするためのURLは

https://bids.hctx.net/bso/external/bidDetail.sdo?bidId=17%2F0244&parentUrl=activeBids 

です要求本体自体に大量のデータがあります。これは、サーバーが正しい文書を返すために必要なパラメーターです。私は彼らがいた作られた要求の場合:

mode:download 
bidId:17/0244 
docId:17/0244 
currentPage:1 
querySql: 
downloadFileNbr:12767 
itemNbr:undefined 
parentUrl:activeBids 
fromQuote: 

この要求は、サーバー側のスクリプトを呼び出す必要がありますことが表示されます、これは、(おそらく)いくつかのリポジトリからドキュメントを取得して、ダウンロードのためにそれを提供しています。実際のファイル自体はURLで直接アクセスできる場所に保持する必要はなく、実際にはほとんど確かにそうではありません。例えばそれは、バイナリフィールドとして、またはいくつかのバックエンドSANストレージ、またはFileNetなどのドキュメント管理システムとしてデータベースに保持することができます。

したがって、ドキュメントへの直接リンクを作成したい場合は、できるだけ最善の方法は、同じURLに同一のクエリー文字列と同じPOST要求を行うコードまたはスタティックHTMLフォームを作成することです。ボディパラメータ。静的な文書そのものへの直接リンクはありません。

+0

私は以下のコードで試しましたが、幸運ではありません。私が今考えている解決策は、ローカルでダウンロードし、リモートのリポジトリにアップロードして利用可能にすることです。 var targetForm = $(document.forms [0]); var urlWithParams = targetForm.attr( 'action')+ "?" + targetForm.serialize(); (urlWithParams) –

+1

申し訳ありませんが、あなたが示したコードが私の説明にどのように結びついているかわかりません。正しいパラメータが含まれていますか?適切かどうかを確認するには、適切な例を見てください。また、元のサーバーからコンテンツを取得し、それを自分のサーバーでホストする予定のようですね。まず、それは法的に疑わしいと思うし、第二に、元のページが変わった場合、どのように最新の状態に保つつもりですか? – ADyson

+1

それ以外は、「どのように文書のパスを知ることができるか」という問題がありました。私はこれを説明しました。私はそれが適切に質問に答えると思います。HTMLとJavaScriptの両方を解析することなく、ページから直接スクラップすることはできません。私はサイトのメーカーが自分たちの文書とのホットリンクを意図していたとは思わない。そして、自分のコピーをどこか別の場所にホストしていることを発見すれば、彼らはとても幸せになるだろうと私は思っています。私は確かにそうではありません。 – ADyson

関連する問題