我正在尝试更改上传文件的路径我希望它们位于根目录中名为“uploads”的目录中
我已成功更改了网址路径
'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
)
但是,只要我对主要选项做同样的事情就会崩溃。我不知所措!
答案 0 :(得分:0)
Here is a similar question.帖子中的评论提到这些选项应接受父文件夹路径,例如../folder
。
答案 1 :(得分:0)
答案并不是路径不起作用。它与目录的大小有关!因为它非常大,有数千张图像。因此,似乎脚本与巨大的图像目录分崩离析。将需要解决这个问题:( 也许让脚本检查数据库是否存在冲突的文件名,而不是搜索目录,因为我认为是这个问题。
答案 2 :(得分: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");
就是这样,所以我有一个唯一的文件名而不搜索目录