예제 #1
0
    if ($metaalreadyset === true) {
        $time = '[' . date('c') . ']';
        echo "{$time} 0: metadata already set for '{$target_file}'\n";
        exit(0);
    }
    // download file from irods to tmp
    $localfile = '/tmp/' . basename($target_file);
    if (file_exists($localfile)) {
        unlink($localfile);
    }
    $irodsfile->open("r");
    $str = '';
    while (($buffer = $irodsfile->read(1024 * 1024)) != NULL && connection_status() == 0) {
        $str = $str . $buffer;
    }
    $irodsfile->close();
    file_put_contents($localfile, $str);
    extactExif($localfile, $irodsfile);
    if (file_exists($localfile)) {
        unlink($localfile);
    }
    $time = '[' . date('c') . ']';
    echo "{$time} 0: '{$target_file}' processed!\n";
    exit(0);
} catch (Exception $e) {
    if (file_exists($localfile)) {
        unlink($localfile);
    }
    $time = '[' . date('c') . ']';
    echo "{$time} " . $e->getCode() . ": " . "{$e}";
    exit(-1);
예제 #2
0
            }
            $error = true;
            break;
        }
        $tempuploadfilepath = tempnam(dirname($srcfile['tmp_name']), 'RODS_Web_Upload');
        move_uploaded_file($srcfile['tmp_name'], $tempuploadfilepath);
        //copy($srcfile['tmp_name'], $srcfile['name']);
        $destfile = new ProdsFile($collection->account, $collection->path_str . "/" . $filename);
        /*
        $response=array('success'=> false,'log'=> ''.$collection->account); 
        echo json_encode($response);
        exit(0); 
        */
        $destfile->open('w', $resource);
        $destfile->write(file_get_contents($tempuploadfilepath));
        $destfile->close();
        if (AUTO_EXTRACT_EXIF === true) {
            extactExif($tempuploadfilepath, $destfile);
        }
        $numfiles++;
        unlink($tempuploadfilepath);
    }
    if ($error === false) {
        $response = array('success' => true, 'msg' => "Uploaded file successfully.");
    }
    echo json_encode($response);
} catch (Exception $e) {
    $response = array('success' => false, 'errmsg' => $e->getMessage(), 'errcode' => $e->getCode());
    echo json_encode($response);
}
function extactExif($localfile, $remoteRODSfile)
예제 #3
0
<?php

require_once "/Path/to/Prods/src/Prods.inc.php";
// make an iRODS account object for connection, assuming:
// username: demouser, password: demopass, server: srbbrick15.sdsc.edu, port: 1247
$account = new RODSAccount("srbbrick15.sdsc.edu", 1247, "demouser", "demopass");
//create an file object for read, assuming the path is "/tempZone/home/demouser/test_read.txt"
$myfile = new ProdsFile($account, "/tempZone/home/demouser/test_read.txt");
//read and print out the file
$myfile->open("r");
echo "the file reads: <pre>";
while ($str = $myfile->read(4096)) {
    echo $str;
}
echo "</pre>";
//close the file pointer
$myfile->close();
//create an file object for write, assuming the path is "/tempZone/home/demouser/test_write.txt"
$myfile = new ProdsFile($account, "/tempZone/home/demouser/test_write.txt");
//write hello world to the file, onto "demoResc" as resource. Note that resource name is
//required here by method open(), because iRODS needs to know which resource to write to.
$myfile->open("w+", "demoResc");
$bytes = $myfile->write("Hello world!\n");
//print the number of bytes writen
echo "{$bytes} bytes written <br/>\n";
$myfile->close();
예제 #4
0
    $response = array('success' => false, 'log' => 'Resource name not specified');
    echo json_encode($response);
    exit(0);
}
try {
    $parent = ProdsDir::fromURI($ruri, false);
    if (empty($parent->account->pass)) {
        $acct = $_SESSION['acct_manager']->findAcct($parent->account);
        if (empty($acct)) {
            $response = array('success' => false, 'log' => 'Authentication Required');
            echo json_encode($response);
            exit(0);
        }
        $parent->account = $acct;
    }
    if (empty($parent->account->zone)) {
        $parent->account->getUserInfo();
    }
    $file = new ProdsFile($parent->account, $parent->path_str . '/' . $name);
    if ($file->exists()) {
        $response = array('success' => false, 'log' => 'Path ' . $parent->path_str . '/' . $name . ' already exists!');
    } else {
        $file->open('w', $resc);
        $file->close();
        $response = array('success' => true, 'log' => "new file '{$name}' created!");
    }
    echo json_encode($response);
} catch (Exception $e) {
    $response = array('success' => false, 'log' => $e->getMessage());
    echo json_encode($response);
}