2012-05-29 33 views
0

我有我存儲圖像的ASPX頁面。這些圖像的URL大約爲2000個字符。ASP.NET - >有沒有人處理超過2500個字符的圖像Url?

此URL的值是從某處讀取的,我無法控制。

我想知道是否有人處理了這種情況。

我有一個JavaScript程序,重建此網址。

,所以我想知道,

a)如何處理那些長度較長的URL。 (我在OnInit中獲得URL)。由於他們更長,我想使用JavaScript功能,將修剪的URL長度。

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) ; 
} 
+1

超過2000個字符的URL沒有得到很好的支持,請參閱http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url。 –

+0

你嘗試過什麼嗎? –

+0

@JeremyHolovacs:由於URL長度是一個問題,我想使用JavaScript函數。到目前爲止,我一直無法獲得javascript功能的成功。我會在原始帖子中粘貼該javascript。 – Anirudh

回答

1

問題不在於協議可以處理的長度,而在於客戶端可以處理的長度。大多數瀏覽器的最大獲取大小約爲2000個字符。如果你想要更多,你需要另一個瀏覽器。但是,這通常不受您的控制。

HTTP協議不會對URI的長度進行任何先驗限制。服務器必須能夠處理它們所服務的任何資源的URI,並且應該能夠處理無限長的URI,前提是它們提供了可以生成這種URI的基於GET的表單。如果URI長於服務器可以處理的長度(參見第10.4.15節),則服務器應該返回414(請求URI太長)狀態。

注意:服務器應該謹慎處理高於255字節的URI長度 ,因爲一些較舊的客戶端或代理實現 可能不能正確支持這些長度。

您可以嘗試使用帖子將信息發送到服務器並將圖像返回給客戶端。

+0

感謝您的意見。我想使用POST,我需要更多的輸入。您是否考慮到上述情況提供相同的內容? – Anirudh

+0

我想知道如何使用httpwebrequest在同一篇文章中發佈圖片? – Anirudh

+0

任何人都可以建議我嗎?不知道問題是否非常基本?還是複雜? – Anirudh

相關問題