1

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

我的 php 函数如下所示:

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

上传文件时

屏幕截图 2013-10-22 上午 7.14.00.png

结果链接是

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

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

4

3 回答 3

2

根据RFC3986中的定义,以下字符在 URL 中有效:

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 - _ . ~

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

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

至于最大长度,这个在另外一个问题中已经回答的很好了:不同浏览器中URL的最大长度是多少?

于 2013-10-22T15:39:16.570 回答
0

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

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

也许达到了极限?

于 2013-10-22T15:44:37.963 回答
0

我觉得现在问很愚蠢

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

我在回应同样的事情,但没有意识到随机字符将再次重新生成,因此回应了一个断开的链接。非常抱歉占用您的时间。

谢谢您的帮助。

于 2013-10-22T15:47:47.233 回答