1

我试图更改放置上传文件的路径我希望它们位于根目录中名为“上传”的目录中

我已成功更改 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
)

但是,一旦我对主要选项执行相同操作,它就会分崩离析。我不知所措!

4

3 回答 3

0

这是一个类似的问题。帖子中的评论提到这些选项应该接受父文件夹路径,例如../folder.

于 2012-08-05T01:22:00.720 回答
0

它的答案不是路径不起作用。它与目录的大小有关!因为它非常大,有数千张图片。所以看起来脚本与巨大的图像目录分崩离析。需要解决这个问题:(也许让脚本检查数据库中是否存在冲突的文件名,而不是像我认为的那样搜索目录。

于 2012-08-05T13:16:20.007 回答
0

已修复,不确定这是否是最好的方法,但它有效!

我放弃了这个受保护的函数 get_file_objects() 函数

因为那是扫描目录,如果你有大量文件夹,从内存的角度来看并不酷。

然后我在“修剪文件名”函数的开头添加了一些随机的唯一数字

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");

就是这样,所以我有一个唯一的文件名而无需搜索目录

于 2012-08-05T14:08:28.127 回答