哪些字符会破坏URL并且URL的最大长度是多少?

时间:2013-10-22 15:34:01

标签: php url web-hosting

我在我的网站上使用文件上传,我不明白为什么有些上传不能通过网络浏览器访问,我只能通过FTP客户端看到它们。

我的php函数如下所示:

move_uploaded_file($fileTmpLoc, 'uploads/'.date('ymdGis').'-'.substr(str_shuffle(md5(time())),0,4).'-'.str_replace(' ', '-', $fileName))

上传

等文件时
  

Screen Shot 2013-10-22 at 7.14.00 AM.png

结果链接是

  

/uploads/131022172126-08cd-Screen-Shot-2013-10-22-at-7.13.18-AM.png

是文件的长度还是其他导致某些文件无法通过网络浏览器访问的内容。

3 个答案:

答案 0 :(得分:0)

RFC3986中所定义,以下字符在网址中有效:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 - _ . ~

以下字符具有特殊含义,因此允许但必须在某些地方转义。

! * ' ( ) ; : @ & = + $ , / ? % # [ ]

至于最大长度,在另一个问题中已经很好地回答了这个问题:What is the maximum length of a URL in different browsers?

答案 1 :(得分:0)

文件名没有最大长度,但你是一个限制upload_max_filesize。

http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize

可能达到了限制?

答案 2 :(得分:0)

现在要求我感到愚蠢

substr(str_shuffle(md5(time())),0,4)

我回应了同样的事情,但没有意识到随机字符会再次重新生成,因此会回显断开的链接。非常抱歉花时间。

感谢您的帮助。

相关问题