同样的,我上传一个名为Skype S'an.jpg的文件,magic_quotes_gpc 为on,不进行addslashes处理时,存入数据库里面的名字变成了an.jpg,把magic_quotes_gpc 设置为off,进行addslashes处理,名字就对了。奇怪~~
解决方案 »
- 极奇怪的,知道bug在哪里,但不知道为何会出现这bug?
- Warning: array_key_exists() [function.array-key-exists]: The second argument sho
- Web开发职位(google)
- 关于禁止post缓存登录的问题?
- sql问题:如果让一个查询结果中的某两列在满期足一定条件时可对该两列中的一些行的值进行计算(内详)
- 怎么把\n输出变成<br />?
- 怎么用gd库把中文写进图片里?
- 数据库查询后的判断空与否的问题
- 手头的一套“自助建站系统”的问题。
- 极菜的问题:MySql的查询语句中的limit是什么意思?
- 运行一个长时间的程序,需要怎样设置服务器??
- 如何用gd库动态生成条状图
{
if (!get_magic_quotes_gpc())
{
if (is_array($array))
{
foreach($array as $item)
{
$this->_filter($item);
}
}
else
{
$item = addslashes($item);
}
}
}可处理数组,多级数组的addslashes~~
于是IMG_0'043.JPG就变成了IMG_0\'043.JPG
注意从表现形式上看那个IMG_0变成目录了,而upload提供的源文件名是不带路径的,当然也就有问题了在服务器中保存文件时取名为什么要借助源文件名呢?我很不理解
比如你上传了一个Skype S'an.jpg,我也上传了一个Skype S'an.jpg。你该如何处理呢?难道一定能认为是同样的文件吗?可能是名字相同而内容不同呢?
如果因发现同名文件而覆盖的话,就可能出现混乱了
如果因发现同名文件而改名的话,那还不如一开始就统一命名判断两个文件是否相同不能只从名字上判断
只要内容相同,不管是什么名字都应该认为是相同的文件
只要内容相同,不管是什么名字都应该认为是相同的文件
---------------------------建议使用md5_file或者sha1_file计算文件的散列值~~
-----------------------------------------------------------唠叨大哥,我保存文件的原始名字并不是为了用来检索,我对每个文件都是进行了重新命名的,保存原始文件名仅仅是方便用户,因为我们的用户很多时候会传很多图片,原始文件名是方便用户来查看的,仅此而已另外,我的问题好像还是没有解决啊,那既然当magic_quotes_gpc = on时,php自动进行addslashes,而为什么当magic_quotes_gpc = off时,手动强制进行addslashes得到的结果与前者不一样呢?
http://bugs.php.net/bug.php?id=31398
Bug #31398 File Upload Original name problem with magic_quotes_gpc = On