I have the same problem !
After tracing and debug...i know what caused this.
the current JCckDevHelper::getRelativePath(); FAILS to work on windows environtment...
Here's why (if you like directly go to solution, skip all this explaination step):
1. Open administrator/components/com_cck/controllers/folder.php, and focus on line 51-56:
if ( $file = $model->prepareExport( $recordId, $elements, $dependencies, $options ) ) {
$file=JCckDevHelper::getRelativePath( $file, false );
$this->setRedirect( JUri::base().'index.php?option=com_cck&task=download&file='.$file );
} else {
$this->setRedirect( _C0_LINK, JText::_( 'JERROR_AN_ERROR_HAS_OCCURRED' ), 'error' );
}
the prepareExport method, will give return the value of $file in this format:
C:/Zend/Apache2/htdocs/guru/tmp/app_cck_customcck.zip
Now, jCckDevHelper::getRelativePath is try to get the relative part of the file, not the full path given. The method is declared on /libraries/cms/cck/dev/helper.php
Look at the line 90-91
$path=str_ireplace( JPATH_ROOT, '', $path );
$path=str_replace( '\\', '/', $path );
This is where the problem happen, because on line 90, it try to remove JPATH_ROOT from the $path, right ? in windows, its totally wrong ! Why ? because JPATH_ROOT will return:
C:\Zend\Apache2\htdocs\guru
See all the 'flip' slash produced by JPATH_ROOT...
SOLUTION ?
it's very easy.
you, just need to modify the line 90:
From:
$path=str_ireplace( JPATH_ROOT, '', $path );
To:
$root=str_replace( '\\', '/', JPATH_ROOT ); // this is the way i forced the flip slash into the correct one produced prepareExport() method
$path=str_ireplace( $root, '', $path );
DONE. PROBLEM SOLVED !
SUBMITTING PULL-REQUEST on /dev now....