0

画像を保存する ASPX ページがあります。これらの画像の URL は約 2000 文字です。

この URL の値はどこかから読み取られており、私には制御できません。

誰かがこの種の状況を処理したかどうか知りたいです。

この URL を再構築する JavaScript プロシージャがあります。

知りたいので、

a) より長い URL を処理する方法。(OnInit で URL を取得します)。長いので、URLの長さをトリミングするjavascript関数を使用したいと思います。

b) 再構築された URL (約 500 文字) を取得したら、これを画像に割り当てて、ページの読み込みを完了させたいと考えています。達成するために

前もって感謝します、

更新 0 : httpwebrequest を使用して同じ投稿に画像を投稿する方法を知りたいですか??

更新 1:元の投稿を更新しました。

2 つの Javascript コードを更新します。このコードは再構築され、ドキュメントが送信されます。この JavaScript をそのまま使用しても問題ありません。または、URL を変更して、コード ビハインド (OnInit) で画像に割り当てることもできます。

<script type="text/javascript">
function posturl(url) {
    var qsBegin = url.indexOf("?");
    var qsPattern = new RegExp("[?&]([^=]*)=([^&]*)", "ig");
    var match = qsPattern.exec(url);
    var params = new Array();

    while (match != null) {
        var matchID = match[1];
        if ( matchID.charAt(0) == "&" ) {
            matchID = matchID.substr(1);
        }

        if ( params[match[1]] != null && !(params[match[1]] instanceof Array) ) {
            var subArray = new Array();
            subArray.push(params[match[1]]);
            subArray.push(unescape(match[2]));
            params[match[1]] = subArray;
        } else if ( params[match[1]] != null && params[match[1]] instanceof Array ) {
            params[match[1]].push(unescape(match[2]));
        } else {
            params[match[1]]=unescape(match[2]);
        }   
        match = qsPattern.exec(url);
    }

    var myForm = document.createElement("form");
    myForm.setAttribute("target", "_blank");
    myForm.method="post" ;
    myForm.action = url.substring(0,qsBegin) ;
    for (var k in params) {
        var myInput;
        // Check for params with the same name.
        if ( params[k] instanceof Array ) {
            for ( var i=0; i<params[k].length; i++ ) {
                myInput = createFormInput(k, params[k][i]);
                myForm.appendChild(myInput) ;
            }
        } else {
            myInput = createFormInput(k, params[k]);
            myForm.appendChild(myInput);
        }
    }

    document.body.appendChild(myForm) ;
    myForm.submit() ;
    document.body.removeChild(myForm) ;
}
4

1 に答える 1

1

問題は、プロトコルが処理できる長さではなく、クライアントが処理できる長さです。ほとんどのブラウザの最大取得サイズは約 2000 文字です。もっと見たい場合は、別のブラウザが必要です。ただし、それは通常、あなたの管理下にはありません。

HTTP プロトコルでは、URI の長さに事前の制限はありません。サーバーは、サービスを提供するリソースの URI を処理できなければならず (MUST)、無制限の長さの URI を処理できる必要があります (SHOULD)。サーバーが処理できる長さよりも URI が長い場合、サーバーは 414 (Request-URI Too Long) ステータスを返す必要があります (セクション 10.4.15 を参照)。

注: 一部の古いクライアントまたはプロキシの実装ではこれらの長さが適切にサポートされていない可能性があるため、サーバーは 255 バイトを超える URI の長さに依存することに注意する必要があります。

投稿を使用して情報をサーバーに送信し、画像をクライアントに返すことができます。

于 2012-05-29T14:07:09.817 に答える