2012-05-29 28 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

相关问题