Change the Archive_Tar _addFile function to make it possible to use a different filename
This commit is contained in:
parent
3fef4564f0
commit
fea6ac46ef
|
@ -981,7 +981,7 @@ class Archive_Tar extends PEAR
|
||||||
// }}}
|
// }}}
|
||||||
|
|
||||||
// {{{ _addFile()
|
// {{{ _addFile()
|
||||||
function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir)
|
function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir, $v_stored_filename=null)
|
||||||
{
|
{
|
||||||
if (!$this->_file) {
|
if (!$this->_file) {
|
||||||
$this->_error('Invalid file descriptor');
|
$this->_error('Invalid file descriptor');
|
||||||
|
@ -993,28 +993,31 @@ class Archive_Tar extends PEAR
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----- Calculate the stored filename
|
// ownCloud change to make it possible to specify the filename to use
|
||||||
$p_filename = $this->_translateWinPath($p_filename, false);;
|
if(is_null($v_stored_filename)) {
|
||||||
$v_stored_filename = $p_filename;
|
// ----- Calculate the stored filename
|
||||||
if (strcmp($p_filename, $p_remove_dir) == 0) {
|
$p_filename = $this->_translateWinPath($p_filename, false);
|
||||||
return true;
|
$v_stored_filename = $p_filename;
|
||||||
}
|
if (strcmp($p_filename, $p_remove_dir) == 0) {
|
||||||
if ($p_remove_dir != '') {
|
return true;
|
||||||
if (substr($p_remove_dir, -1) != '/')
|
}
|
||||||
$p_remove_dir .= '/';
|
if ($p_remove_dir != '') {
|
||||||
|
if (substr($p_remove_dir, -1) != '/')
|
||||||
|
$p_remove_dir .= '/';
|
||||||
|
|
||||||
if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir)
|
if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir)
|
||||||
$v_stored_filename = substr($p_filename, strlen($p_remove_dir));
|
$v_stored_filename = substr($p_filename, strlen($p_remove_dir));
|
||||||
}
|
}
|
||||||
$v_stored_filename = $this->_translateWinPath($v_stored_filename);
|
$v_stored_filename = $this->_translateWinPath($v_stored_filename);
|
||||||
if ($p_add_dir != '') {
|
if ($p_add_dir != '') {
|
||||||
if (substr($p_add_dir, -1) == '/')
|
if (substr($p_add_dir, -1) == '/')
|
||||||
$v_stored_filename = $p_add_dir.$v_stored_filename;
|
$v_stored_filename = $p_add_dir.$v_stored_filename;
|
||||||
else
|
else
|
||||||
$v_stored_filename = $p_add_dir.'/'.$v_stored_filename;
|
$v_stored_filename = $p_add_dir.'/'.$v_stored_filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
$v_stored_filename = $this->_pathReduction($v_stored_filename);
|
$v_stored_filename = $this->_pathReduction($v_stored_filename);
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->_isArchive($p_filename)) {
|
if ($this->_isArchive($p_filename)) {
|
||||||
if (($v_file = @fopen($p_filename, "rb")) == 0) {
|
if (($v_file = @fopen($p_filename, "rb")) == 0) {
|
||||||
|
|
Loading…
Reference in New Issue