我正在尝试更改我的上传的放置路径,我希望它们位于根目录下的一个名为' uploads‘的目录中
我已成功更改URL路径
'upload_url' => 'http://www.mydomain.co.uk/uploads/',但是,当我尝试更改目录上载路径时,代码将不起作用,并出现内部服务器错误消息。我似乎在日志里找不到任何相关的东西。
'upload_dir' => '../../uploads/',这是原始的代码
'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/files/',
'upload_url' => $this->getFullUrl().'/files/',脚本的路径是$_server‘’ROOT‘/server/php /index.php,原始文件目录在/server/php目录中。所以我试着回到两层深的地方。
奇怪的是,这是可行的:
'large' => array(
'upload_dir' => '../../uploads/',
'upload_url' => 'http://www.mydomain.co.uk/uploads/',
'max_width' => 1920,
'max_height' => 1200,
'jpeg_quality' => 95
),
'thumbnail' => array(
'upload_dir' => '../../thumbs1/',
'upload_url' => 'http://www.mydomain.co.uk/thumbs1/',
'max_width' => 80,
'max_height' => 80
)但是,一旦我对主要选项执行同样的操作,它就会崩溃。我不知所措!
发布于 2012-08-05 09:22:01
Here is a similar question.在帖子中的评论提到,这些选项应该接受父文件夹路径,如../folder。
发布于 2012-08-05 21:16:20
它的答案并不是说这条路不管用。这与目录的大小有关!因为它非常大,有成千上万的图像。所以看起来这个脚本被巨大的图像目录搞得支离破碎。我需要解决这个问题:(也许可以让脚本检查数据库中冲突的文件名,而不是像我认为的那样在目录中搜索。
发布于 2012-08-05 22:08:28
修复,不确定这是不是最好的方法,但它是有效的!
我放弃了这个受保护的函数get_file_objects()函数
因为这是在扫描目录,从内存的角度来看,如果你有大量的文件夹,这是不酷的。
然后,我在'trim file name‘函数的开头添加了一些随机的唯一数字
protected function trim_file_name($name, $type, $index) {
$realname = $name;
$realname = strtolower($realname);mt_srand((double)microtime()*3000000);
$randvar = mt_rand(3,30000000);
settype($randvar,"string"); $file_name = trim(basename(stripslashes($randvar.$name)), ".\x00..\x20");如此一来,我就有了一个唯一的文件名,而无需搜索目录
https://stackoverflow.com/questions/11813239
复制相似问题