mirror of
https://github.com/misterunknown/ifm.git
synced 2025-08-13 11:34:00 +02:00
Merge pull request #37 from misterunknown/issue-34
added config option for temporary directory; closes #34
This commit is contained in:
17
ifm.php
17
ifm.php
@@ -70,6 +70,13 @@ class IFMConfig {
|
|||||||
const root_dir = "";
|
const root_dir = "";
|
||||||
const defaulttimezone = "Europe/Berlin"; // set default timezone
|
const defaulttimezone = "Europe/Berlin"; // set default timezone
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Temp directory for zip files
|
||||||
|
*
|
||||||
|
* Default is the upload_tmp_dir which is set in the php.ini, but you may also set an different path
|
||||||
|
*/
|
||||||
|
const tmp_dir = "";
|
||||||
|
|
||||||
// development tools
|
// development tools
|
||||||
const ajaxrequest = 1; // formular to perform an ajax request
|
const ajaxrequest = 1; // formular to perform an ajax request
|
||||||
|
|
||||||
@@ -1356,7 +1363,7 @@ ifm.init();
|
|||||||
if( ! is_dir( realpath( IFMConfig::root_dir ) ) || ! is_readable( realpath( IFMConfig::root_dir ) ) )
|
if( ! is_dir( realpath( IFMConfig::root_dir ) ) || ! is_readable( realpath( IFMConfig::root_dir ) ) )
|
||||||
die( "Cannot access root_dir.");
|
die( "Cannot access root_dir.");
|
||||||
else
|
else
|
||||||
chdir( IFMConfig::root_dir );
|
chdir( realpath( IFMConfig::root_dir ) );
|
||||||
if ( ! isset($_REQUEST['api']) ) {
|
if ( ! isset($_REQUEST['api']) ) {
|
||||||
$this->getApplication();
|
$this->getApplication();
|
||||||
} else {
|
} else {
|
||||||
@@ -1719,7 +1726,7 @@ ifm.init();
|
|||||||
echo json_encode( array( "status" => "ERROR", "message" => "Filename not allowed" ) );
|
echo json_encode( array( "status" => "ERROR", "message" => "Filename not allowed" ) );
|
||||||
else {
|
else {
|
||||||
unset( $zip );
|
unset( $zip );
|
||||||
$dfile = uniqid( "ifm-tmp-" ) . ".zip"; // temporary filename
|
$dfile = $this->pathCombine( IFMConfig::tmp_dir, uniqid( "ifm-tmp-" ) . ".zip" ); // temporary filename
|
||||||
try {
|
try {
|
||||||
IFMZip::create_zip( realpath( $d['filename'] ), $dfile, ( $d['filename'] == "." ) );
|
IFMZip::create_zip( realpath( $d['filename'] ), $dfile, ( $d['filename'] == "." ) );
|
||||||
if( $d['filename'] == "." ) {
|
if( $d['filename'] == "." ) {
|
||||||
@@ -1962,10 +1969,12 @@ ifm.init();
|
|||||||
|
|
||||||
// combines two parts to a valid path
|
// combines two parts to a valid path
|
||||||
private function pathCombine( $a, $b ) {
|
private function pathCombine( $a, $b ) {
|
||||||
if( $a=="" && $b=="" )
|
if( trim( $a ) == "" && trim( $b ) == "" )
|
||||||
return "";
|
return "";
|
||||||
|
elseif( trim( $a ) == "" )
|
||||||
|
return ltrim( $b, '/' );
|
||||||
else
|
else
|
||||||
return ltrim( rtrim( $a, '/' ) . '/' . ltrim( $b, '/' ), '/' );
|
return rtrim( $a, '/' ) . '/' . ltrim( $b, '/' );
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if filename is allowed
|
// check if filename is allowed
|
||||||
|
@@ -70,6 +70,13 @@ class IFMConfig {
|
|||||||
const root_dir = "";
|
const root_dir = "";
|
||||||
const defaulttimezone = "Europe/Berlin"; // set default timezone
|
const defaulttimezone = "Europe/Berlin"; // set default timezone
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Temp directory for zip files
|
||||||
|
*
|
||||||
|
* Default is the upload_tmp_dir which is set in the php.ini, but you may also set an different path
|
||||||
|
*/
|
||||||
|
const tmp_dir = "";
|
||||||
|
|
||||||
// development tools
|
// development tools
|
||||||
const ajaxrequest = 1; // formular to perform an ajax request
|
const ajaxrequest = 1; // formular to perform an ajax request
|
||||||
|
|
||||||
|
10
src/main.php
10
src/main.php
@@ -164,7 +164,7 @@ class IFM {
|
|||||||
if( ! is_dir( realpath( IFMConfig::root_dir ) ) || ! is_readable( realpath( IFMConfig::root_dir ) ) )
|
if( ! is_dir( realpath( IFMConfig::root_dir ) ) || ! is_readable( realpath( IFMConfig::root_dir ) ) )
|
||||||
die( "Cannot access root_dir.");
|
die( "Cannot access root_dir.");
|
||||||
else
|
else
|
||||||
chdir( IFMConfig::root_dir );
|
chdir( realpath( IFMConfig::root_dir ) );
|
||||||
if ( ! isset($_REQUEST['api']) ) {
|
if ( ! isset($_REQUEST['api']) ) {
|
||||||
$this->getApplication();
|
$this->getApplication();
|
||||||
} else {
|
} else {
|
||||||
@@ -527,7 +527,7 @@ class IFM {
|
|||||||
echo json_encode( array( "status" => "ERROR", "message" => "Filename not allowed" ) );
|
echo json_encode( array( "status" => "ERROR", "message" => "Filename not allowed" ) );
|
||||||
else {
|
else {
|
||||||
unset( $zip );
|
unset( $zip );
|
||||||
$dfile = uniqid( "ifm-tmp-" ) . ".zip"; // temporary filename
|
$dfile = $this->pathCombine( IFMConfig::tmp_dir, uniqid( "ifm-tmp-" ) . ".zip" ); // temporary filename
|
||||||
try {
|
try {
|
||||||
IFMZip::create_zip( realpath( $d['filename'] ), $dfile, ( $d['filename'] == "." ) );
|
IFMZip::create_zip( realpath( $d['filename'] ), $dfile, ( $d['filename'] == "." ) );
|
||||||
if( $d['filename'] == "." ) {
|
if( $d['filename'] == "." ) {
|
||||||
@@ -770,10 +770,12 @@ class IFM {
|
|||||||
|
|
||||||
// combines two parts to a valid path
|
// combines two parts to a valid path
|
||||||
private function pathCombine( $a, $b ) {
|
private function pathCombine( $a, $b ) {
|
||||||
if( $a=="" && $b=="" )
|
if( trim( $a ) == "" && trim( $b ) == "" )
|
||||||
return "";
|
return "";
|
||||||
|
elseif( trim( $a ) == "" )
|
||||||
|
return ltrim( $b, '/' );
|
||||||
else
|
else
|
||||||
return ltrim( rtrim( $a, '/' ) . '/' . ltrim( $b, '/' ), '/' );
|
return rtrim( $a, '/' ) . '/' . ltrim( $b, '/' );
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if filename is allowed
|
// check if filename is allowed
|
||||||
|
Reference in New Issue
Block a user